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()设置提示文字

豆瓣电影的搜索输入框,没有输入任何字符时,显示“电影、影人、影院、电视剧”这些占位文字,对用户输入作相关提示。

echoLineEdit->setPlaceholderText( "电影、影人、影院、电视剧" );

回到顶部

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 QLineEdit 输入框相关推荐

  1. Qt QLineEdit单行输入框用法详解

    Qt QLineEdit单行输入框用法详解 QLineEdit 是 Qt 提供的一个控件类,它直接继承自 QWdiget 类,专门用来创建单行输入框,如下图所示: 图 1 单行文本输入框 实际开发中, ...

  2. Qt QLineEdit 信号函数总结

    Qt QLineEdit 信号函数总结 QLineEdit一共有6个信号函数,并不多,很好理解. void cursorPositionChanged( intold, intnew ) 当鼠标移动时 ...

  3. Qt QLineEdit中屏蔽粘贴功能

    Qt QLineEdit中屏蔽粘贴功能 http://blog.sina.com.cn/s/blog_8d8425f3010108d6.html 在Qt4中实现屏蔽粘贴功能有好几种方法,其中最简单的一 ...

  4. QT QLineEdit焦点和键盘问题

    QLineEdit焦点和键盘问题 今天主要讨论如何使输入框失去焦点后键盘自动退出. window 平板开发发现一个问题,当界面有输入框时,系统键盘弹出和隐藏不正确. 正常情况,进入界面输入框处于焦点状 ...

  5. Qt——QLineEdit

    QLineEdit是一个单行文本编辑控件. 使用者可以通过很多函数,输入和编辑单行文本,比如撤销.恢复.剪切.粘贴以及拖放等. 通过改变QLineEdit的 echoMode() ,可以设置其属性,比 ...

  6. QT QLineEdit使用详解

    本文详细的介绍了QLineEdit控件的各种操作,例如:编辑框的状态.边框.密码框.限制输入类型.对齐方式.验证器的使用.样式表的应用等操作. QLineEdit允许用户输入和编辑单行纯文本,提供了很 ...

  7. Qt——QLineEdit使用总结

    http://www.cnblogs.com/hellovenus/p/5183593.html QLineEdit是一个单行文本编辑控件. 使用者可以通过很多函数,输入和编辑单行文本,比如撤销.恢复 ...

  8. Qt QLineEdit详解

    1.概述 QLineEdit 行编辑框允许用户使用一组有用的编辑功能输入和编辑一行纯文本,包括撤消和重做.剪切和粘贴以及拖放. 2.常用数据接口 2.1设置/获取 显示数据 void setText( ...

  9. Qt QLineEdit

    前言 QLineEdit单行文本编辑器,一般当输入控件使用,总结一下. 设置输入提示 void setPlaceholderText(const QString &); 设置最大长度 void ...

最新文章

  1. 从接触FPGA开始...
  2. 从零开始学前端:CSS引入 --- 今天你学习了吗?(CSS:Day07)
  3. 图像直方图原理与Python实现
  4. mysql 1143_ERROR 1143 (42000): SELECT command denied to user
  5. python 取余_Python-基本使用
  6. Uber的微服务架构实践
  7. 【gp数据库】查询GP中某张表的分布键信息
  8. 【转摘】芯片的本质是什么
  9. LiveZilla 详细 配置 设置 (三) 配置 LiveZilla 服务
  10. ASML公司Q3季度营收27.9亿欧元
  11. STM32 | STM32CubeMX基础之TIM
  12. 聚散随缘,勿忘心安 -- 颜夕溪
  13. 实验吧-后台登录 Writeup
  14. 刚刚!阿里香港上市,他们的区块链和百度、腾讯有什么不同?
  15. 华硕B660重炮手主板核显无法识别硬盘处理方案
  16. CentOS SVN使用
  17. ipadpro分屏怎么操作_iPad到手后必备的高效设置技巧(iPad Pro、iPad Air、iPad mini学习生产工具...
  18. excel的数据通过pyecharts生成图表,插入ppt
  19. 程序员发展职业规划_梁胜博士:写给程序员的话
  20. signature生成算法

热门文章

  1. 以色列医院利用iPad帮助治疗病人
  2. LaTeX关于section和paragraph的用法
  3. Linux审计与日志安全加固
  4. 因子分析原理及结果解析
  5. WINDOWS下PCI接口卡WDM驱动程序的DMA编程技术1
  6. 海图(基于http服务器的图片管理工具)
  7. mysql主键generated_MySQL之虚拟列(generated-columns)
  8. 史上最全的Staking上车指南
  9. (已解决)关于openwrt路由器重启后zerotier的ip变化处理
  10. OLTP 与 OLAP 的意义及区别