Qt QLineEdit单行输入框用法详解

QLineEdit 是 Qt 提供的一个控件类,它直接继承自 QWdiget 类,专门用来创建单行输入框,如下图所示:

图 1 单行文本输入框

实际开发中,我们经常用到 QLineEdit 输入框,比如接收用户输入的个人信息、账户信息、角色名称等,就可以用 QLineEdit 实现。

QLineEdit单行输入框的创建

每个单行输入框都是 QLineEdit 类的一个实例对象,QLineEdit 类提供有两个构造函数,分别是:

QLineEdit(QWidget *parent = Q_NULLPTR)
QLineEdit(const QString &contents, QWidget *parent = Q_NULLPTR)

contents 参数用于指定输入框中的文本内容;parent 参数用于指定新建输入框控件的父窗口,新建输入框将会内嵌到父窗口上,作为父窗口的一个子控件。当然,我们也可以不指定父窗口,那么新建的输入框就会作为独立的窗口。

在 QLineEdit 输入框中,用户可以直接输入一行文本,也可以粘贴一行文本,还可以修改输入框内的文本。某些实际场景中,QLineEdit 输入框还可以对用户输入的内容加以限定,比如:

限定文本的长度,例如用户最多可以输入 20 个字符;

输入文本的格式,例如用户输入出生日期时,必须按照“yy-mm-dd”的格式输入;

输入的文本内容,例如当前输入框仅允许用户输入数字,或者只允许用户输入英文字符。

QLineEdit单行输入框的使用

QLineEdit 类的内部提供了很多实用的属性和方法,同时还从 QWidget 父类处继承了一些属性和方法。

下表列出了 QLineEdit 类对象经常调用的一些属性以及它们各自的含义:

表 1 QLineEdit常用属性

属 性 含 义
text 保存输入框中的文本。该属性的值可以通过 text() 方法获取,也可以通过 setText(const QString &) 方法修改。
maxLength 设置输入框中最多可以放置的文本长度。当文本长度超出最大限度后,超出部分将被丢弃。默认情况下,maxLength 的值为 32767。该属性的值可以通过 maxLength() 函数获得,也可以通过 setMaxLength(int) 方法修改。
placeholderText 设置提示信息,例如当用户未选中输入框时,输入框中显示“请输入…”,而用户选中输入框时,“请输入…” 随之消失。该属性的值可以通过 placeholderText() 方法获取,也可以通过 setPlaceholderText(const QString &) 方法修改。
clearButtonEnabled 当输入框中有文本时,输入框的右侧可以显示一个“一键清除”按钮。该属性的默认值为 false,即输入框中不会自动显示清除按钮。该属性的值可以通过 isClearButtonEnabled() 方法获取,也可以通过 setClearButtonEnabled(bool enable) 方法修改。
echoMode 设定输入框中文本的显示样式,该属性的可选值有以下几个:QLineEdit::Normal:正常显示所输入的字符,此为默认选项。QLineEdit::NoEcho:不显示任何输入的字符,常用于密码类型的输入,且长度保密QLineEdit::Password:显示与平台相关的密码掩饰字符,而不是实际输入的字符。当用户重新点击输入框时,可以紧接着之前的文本继续输入。QLineEdit::PasswordEchoOnEdit:编辑时正常显示输入的字符,编辑完成后改为用密码掩饰字符显示。当用户重新点击输入框时,不能紧接着之前的文本继续输入。该属性的是可以通过 echoMode() 方法获取,也可以通过 setEchoMode(EchoMode) 方法修改。
frame 控制输入框的边框。默认情况下,输入框是带有边框的。该属性的值可以通过 hasFrame() 方法获取,也可以通过 setFrame(bool) 方法修改。

除了上表提到的获取和修改属性值的方法外,QLineEdit 类还提供了一些功能实用的方法,例如:

表 2 QLineEdit常用方法

成员方法 功 能
move(int x, int y) 指定输入框位于父窗口中的位置。
setValidator(const QValidator *v) 限制输入框中的文本内容,比如输入框只包含整数。
setReadOnly(bool) 设置输入框是否进入只读状态。在只读状态下,用户仍可以采用粘贴、拖拽的方式向输入框中放置文本,但无法进行编辑。
setAlignent(Qt::Alignment flag) 设置输入框中输入文本的位置。

QLineEdit单行输入框的信号和槽

QLineEdit 类提供了几个信号函数,分别对应用户的几种输入状态。

表 3 QLineEdit信号函数

信号函数 功 能
textEdited(const QString &text) 当用户编辑输入框中的文本时,此信号就会触发,text 参数即为用户新编辑的文本。注意,当程序中试图通过 setText() 方法修改输入框中的文本时,不会触发此信号函数。
textChanged(const QString &text) 只要输入框中的文本内容发生变化,就会触发此信息。
returnPressed() 用户按下回车键时,会触发此信号。
editingFinished() 用户按下回车键,或者鼠标点击输入框外的其它位置时,会触发此信号。

QLineEdit 类常用的槽函数有以下几个:

表 4 QLineEdit槽函数

槽函数 功 能
clear() 清空文本框中的内容。
setText(const QString &) 重新指定文本框中的内容。

QLineEdit单行输入框的用法示例

下面的实例给大家演示了 QLineEdit 单行输入框控件的基本用法,同时还演示了几个成员方法的用法。

#include <QApplication>
#include <QWidget>
#include <QLineEdit>
using namespace std;
int main(int argc, char *argv[])
{QApplication a(argc, argv);//创建一个窗口,作为输入框的父窗口QWidget widget;//设置窗口的标题widget.setWindowTitle("QWidget窗口");//接下来,分别创建两个输入框,用于让用户分别输入账号和密码//创建账号输入框QLineEdit lineEdit(&widget);//指定输入框位于父窗口中的位置lineEdit.move(100,100);//设置提示信息lineEdit.setPlaceholderText("请输入账号...");//让输入框显示“一键清除”按钮lineEdit.setClearButtonEnabled(true);//创建密码输入框QLineEdit lineEditPass(&widget);lineEditPass.setPlaceholderText("请输入密码...");lineEditPass.move(100,150);//指定文本显示方式,保护用户账号安全lineEditPass.setEchoMode(QLineEdit::Password);//指定窗口的尺寸和显示文字的大小widget.resize(500,300);widget.setFont(QFont("宋体",16));widget.show();return a.exec();
}

运行结果为:

图 2 运行结果

Qt QLineEdit单行输入框用法详解相关推荐

  1. Qt QListWidget列表框用法详解

    Qt QListWidget列表框用法详解 很多应用程序中需要以列表的形式向用户展示数据(资源),比如 Windows 操作系统会以列表的方式展示很多张桌面背景图(如图 1a) 所示),再比如很多音乐 ...

  2. Qt QPushButton按钮用法详解

    Qt QPushButton按钮用法详解 按钮是 GUI 开发中最常用到的一种控件,作为一款著名的 GUI 开发框架,Qt 提供了很多种按钮,比如 QPushButton(普通按钮).QRadioBu ...

  3. QT QTabWidget 控件 使用详解

    本文详细的介绍了QTabWidget控件的各种操作,例如:新建界面.设置页面名字.设置提示信息.设置页面激活.设置标题栏位置.设置页面关闭按钮.设置页面关闭按钮.获取页面下标.获取页面总数.清空所有页 ...

  4. jQuery 表单验证插件,jQuery Validation Engine用法详解

    jQuery 表单验证插件,jQuery Validation Engine用法详解 功能强大的 jQuery 表单验证插件,适用于日常的 E-mail.电话号码.网址等验证及 Ajax 验证,除自身 ...

  5. CSS3 Flex 弹性布局用法详解

    什么是Flex弹性布局 Flex是Flexible Box的简称,意为弹性布局,顾名思义,在网页布局时,他可以给我们提供更多的灵活性. 说明: 1.flex是display的一个属性值.与之相当应的还 ...

  6. css文本行高是哪个属性_css属性行高line-height的用法详解

    css属性行高line-height的用法详解 发布时间:2014-08-02 23:21:52   作者:佚名   我要评论 本文介绍下css中的line-height属性的用法,通过实例学习css ...

  7. python lambda函数-Python的Lambda函数用法详解

    在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数.今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式. 1.为什么要 ...

  8. emit python 作用_PyQT5 emit 和 connect的用法详解

    对于PyQT4, PyQT5在一些使用上有着比较明显的变化有很大的变化,让人惊讶是在emit和connect上的一些变化比较有意思,相信也是QT为了更好的和Python相结合做的改进. 先上一张图: ...

  9. emit python 作用,PyQT5 emit 和 connect的用法详解

    对于PyQT4, PyQT5在一些使用上有着比较明显的变化有很大的变化,让人惊讶是在emit和connect上的一些变化比较有意思,相信也是QT为了更好的和Python相结合做的改进. 先上一张图: ...

最新文章

  1. 集生态之力跨城市数字化之难题,英特尔交上了一份完美答卷
  2. python【蓝桥杯vip练习题库】BASIC-23芯片测试(统计)
  3. loj 1316(spfa预处理+状压dp)
  4. Matrix工作室第六届纳新AI组考核题(A卷)
  5. 使用 Content-Encoding: br 替换 Content-Encoding: gzip
  6. dasblog的安装
  7. matlab根据转移函数绘制放大器幅频响应和相频响应
  8. Android代码抄袭Java曝猛料 新证据出现
  9. 宠物次元经济专题分析2020
  10. css js写在一起 vue_如何把vue2.0 和 animate.css合并在一起使用(详细教程)
  11. java 抽象类和接口1--基本概念
  12. TensorFlow VGG16
  13. 情感计算在淘宝UGC的应用
  14. CCKS-2017行业知识图谱构建与应用-上篇
  15. 无线桥接后无法访问服务器,无线桥接后不能登录副路由器ip地址的解决方法
  16. ALPS新秀登场TRON DeFi——让每个人都可参与的社会金融
  17. CISCO路由器交换机简介及Packet+Tracer使用说明
  18. Web前端开发三剑客是做什么的?
  19. 什么是数字化转型? 怎样算是转型?
  20. Xavier/Tx2镜像拷贝及系统克隆

热门文章

  1. Android之获取地理位置
  2. php手机打开pdf文件怎么打开,PDF文件怎么打开?手机打开PDF及编辑的技巧
  3. FPGA|通过AS下载固化
  4. Django 实现网站注册用户邮箱验证功能
  5. caffe配置 一生不可自决
  6. 塔夫茨计算机科学,塔夫茨大学计算机科学研究生语言及申请要求-费用-课程设置...
  7. onedrive登陆以后是白板,我下载了onedrive以后,安装到登陆界面,输入账号,提示:我们的系统中没有 - Microsoft Community...
  8. cp -rv linux,Linux基础知识(二)
  9. 绍耕反失败学课程(06)——在正确时间做正确的事情,轻装上阵抛弃负担
  10. windows中删除设备和驱动器中的其他软件图标