-
Qt QLineEdit 输入框_qt编辑框输入限制
- 网站名称:Qt QLineEdit 输入框_qt编辑框输入限制
- 网站分类:技术文章
- 收录时间:2025-08-30 03:29
- 网站地址:
“Qt QLineEdit 输入框_qt编辑框输入限制” 网站介绍
QLineEdit是一个单行文本编辑控件。
使用者可以通过很多函数,输入和编辑单行文本,比如撤销、恢复、剪切、粘贴以及拖放等。
通过改变QLineEdit的 echoMode() ,可以设置其属性,比如以密码的形式输入。
文本的长度可以由 maxLength() 限制,可以通过使用 validator() 或者 inputMask() 可以限制它只能输入数字。在对同一个QLineEdit的validator或者input mask进行转换时,最好先将它的validator或者input mask清除,以避免错误发生。
与QLineEdit相关的一个类是QTextEdit,它允许多行文字以及富文本编辑。
我们可以使用 setText() 或者 insert() 改变其中的文本,通过 text() 获得文本,通过 displayText() 获得显示的文本,使用 setSelection() 或者 selectAll() 选中文本,选中的文本可以通过cut()、copy()、paste()进行剪切、复制和粘贴,使用 setAlignment() 设置文本的位置。
文本改变时会发出 textChanged() 信号;如果不是由setText()造成文本的改变,那么会发出textEdit()信号;鼠标光标改变时会发出cursorPostionChanged()信号;当返回键或者回车键按下时,会发出returnPressed()信号。
当编辑结束,或者LineEdit失去了焦点,或者当返回/回车键按下时,editFinished()信号将会发出。
以上是Qt官方文档对QLineEdit的简要说明,下面对一些常用的方法作说明:
回到顶部
1.QLineEdit 接收用户输入
QLineEdit 继承自 QWidget 基类
显示模式
显示模式 | 效果 |
QLineEdit::Normal | 正常显示 |
QLineEdit::NoEcho | 不显示 |
QLineEdit::Password | 密码显示 |
QLineEdit::PasswordEchoOnEdit | 编辑时候正常显示,其他密码显示 |
2. QLineEdit 掩码字符 inputMask
对用户的输入进行一些限制
如:
> 输入转换为大写,
Aa 头两个必须输入为字母,a 第二个字母可以为空格
-分隔符
90 第三第四个可以为数字,0 第四个数字可以为空
-分隔符
< 输入转换为小写
AA 两个不能为空格的字母,
-分隔符,
!取消大小写转换
aaa 三个可以为空格的字母位,
\! 转义分隔符,转义后这里的 ! 为分隔符
HH 为16进制符
字符(必须输入)字符(可留空)含义
Nn只能输入A-Z,a-z,0~9
Xx可以输入任意字符
90只能输入0-9
Dd只能输入1-9
#只能输入 +, -, 0-9
Hh只能输入十六进制字符 (0-9,a-f,A-F)
Bb只能输入二进制字符(0,1)
>后面的字母字符自动转换为大写
>后面的字母字符自动转换为小写
!停止字母字符的大小写转换
\将该表中的特殊字符正常显示用作分隔符
QPushButton 按钮类,常用显示文字、图标。
QRadioButton 单选按钮类,只能选一个,当将单选按钮加入一个分组框中时,加入的按钮便是一个分组,分组中只能选中一个,具有排他性。QCheckBox是多选按钮类,可多选。
3. setPlaceholderText()设置提示文字
豆瓣电影的搜索输入框,没有输入任何字符时,显示“电影、影人、影院、电视剧”这些占位文字,对用户输入作相关提示。
点击领取Qt学习资料+视频教程~「链接」
4. setEchoMode()设置模式
淘宝登录界面的一部分,用户名可以直接看到,密码一般都用小黑点掩盖。
switch (index) {
case 0:
//默认,输入什么即显示什么
echoLineEdit->setEchoMode(QLineEdit::Normal);
break ;
case 1:
//密码,一般是用小黑点覆盖你所输入的字符
echoLineEdit->setEchoMode(QLineEdit::Password);
break ;
case 2:
//编辑时输入字符显示输入内容,否则用小黑点代替
echoLineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);
break ;
case 3:
//任何输入都看不见(只是看不见,不是不能输入)
echoLineEdit->setEchoMode(QLineEdit::NoEcho);
}
5. setAlignment()设置文本位置
switch (index)
{
case 0:
alignmentLineEdit->setAlignment(Qt::AlignLeft);
break ;
case 1:
alignmentLineEdit->setAlignment(Qt::AlignCenter);
break ;
case 2:
alignmentLineEdit->setAlignment(Qt::AlignRight);
}
6. setReadOnly()设置能否编辑
switch (index)
{
case 0:
accessLineEdit->setReadOnly( false );
break ;
case 1:
accessLineEdit->setReadOnly( true );
}
7. setValidator()对输入进行限制
这种方式的实质是通过正则表达式限制输入的内容。
switch (index)
{
case 0:
//无限制
validatorLineEdit->setValidator(0);
break ;
case 1:
//只能输入整数
validatorLineEdit->setValidator( new QIntValidator(
validatorLineEdit));
break ;
case 2:
//实例,只能输入-180到180之间的小数,小数点后最多两位(可用于限制经纬度等)
QDoubleValidator *pDfValidator = new QDoubleValidator(-180.0, 180.0 , 2, validatorLineEdit);
pDfValidator->setNotation(QDoubleValidator::StandardNotation);
validatorLineEdit->setValidator(pDfValidator);
}
8. setInputMask()对输入进行限制
通过限制格式限制输入,具体怎么格式化可以参考Qt助手。
switch (index)
{
case 0:
inputMaskLineEdit->setInputMask( "" );
break ;
case 1:
inputMaskLineEdit->setInputMask( "+99 99 99 99 99;_" );
break ;
case 2:
inputMaskLineEdit->setInputMask( "0000-00-00" );
inputMaskLineEdit->setText( "00000000" );
inputMaskLineEdit->setCursorPosition(0);
break ;
case 3:
inputMaskLineEdit->setInputMask( ">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#" );
}
9. setMaxLength()设置可以输入的最多字符数
//最多只能输入9个字符
echoLineEdit->setMaxLength(9);
10. validator和inputmask的结合
比如纬度用“度:分:秒”的格式表示,分和秒的范围都是00-59,度的范围是-89到89。
QRegExp rx( "(-|\\+)?[0-8]\\d:[0-5]\\d:[0-5]\\d" );
echoLineEdit->setValidator( new QRegExpValidator(rx, echoLineEdit));
echoLineEdit->setInputMask( "#00:00:00;0" );
echoLineEdit->setText( "+00:00:00" );
如果不控制输入,那么必须在输入后检查输入是否合法,但控制输入后的输入肯定是合法的,可以省去检查合法的繁琐步骤。只需使用正则表达式控制输入的度分秒范围,然后控制输入的格式。
点击领取Qt学习资料+视频教程~「链接」
- 上一篇:Qt添加注释模板_qt添加帮助文档
- 下一篇:Qt之读写文件_qt 读写文件
更多相关网站
- Qt使用教程:指定编辑器设置_qt需要设置一个编辑器来构建
- 24章全-Qt 全流程实战企业级项目 - 云对象存储浏览器
- QT远程Linux文件浏览器_qt读取远程电脑的文件目录
- Qt中的IO操作_qt的ide
- QT5.9.9生成并调用自己的DLL_qt怎么调用dll文件
- 从零开始学Qt(25):常用的宏定义_从零开始学习26键
- Qt与Js互相调用_java调用qt
- Qt6重磅更新:新版本的Qt 6 将通过包管理器提供附加库
- Qt编程基础_qt编程入门
- Qt 纯C++项目发布为dll的方法(超详细步骤)
- Qt开发dll共享库简单的调试方法_qt发布dll
- 从零开始学Qt(52):QTextStream读写文本文件
- 「Qt入门第22篇」 数据库(二)编译MySQL数据库驱动
- Qt使用教程:指定生成设置(二)_qt二维码生成教程
- 用Qt简化你的开发工具集,从MCU到桌面电脑,应有尽有
- Qt drawText 绘制文本_qt drawrect
- QT框架之个人管理系统实现-前导文
- Qt文件路径:QDir_qt 当前路径
- 最近发表
- 标签列表
-
- mydisktest_v298 (35)
- sql 日期比较 (33)
- document.appendchild (35)
- 头像打包下载 (35)
- 梦幻诛仙表情包 (36)
- java面试宝典2019pdf (26)
- disk++ (30)
- 加密与解密第四版pdf (29)
- iteye (26)
- centos7.4下载 (32)
- intouch2014r2sp1永久授权 (33)
- jdk1.8.0_191下载 (27)
- axure9注册码 (30)
- 兔兔工程量计算软件下载 (27)
- ccproxy破解版 (31)
- aida64模板 (28)
- engine=innodb (33)
- shiro jwt (28)
- segoe ui是什么字体 (27)
- head first java电子版 (32)
- clickhouse中文文档 (28)
- jdk-8u181-linux-x64.tar.gz (32)
- 计算机网络自顶向下pdf (34)
- -dfile.encoding=utf-8 (33)
- jdk1.9下载 (32)