Qt QLineEdit单行输入框用法详解
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单行输入框用法详解相关推荐
- Qt QListWidget列表框用法详解
Qt QListWidget列表框用法详解 很多应用程序中需要以列表的形式向用户展示数据(资源),比如 Windows 操作系统会以列表的方式展示很多张桌面背景图(如图 1a) 所示),再比如很多音乐 ...
- Qt QPushButton按钮用法详解
Qt QPushButton按钮用法详解 按钮是 GUI 开发中最常用到的一种控件,作为一款著名的 GUI 开发框架,Qt 提供了很多种按钮,比如 QPushButton(普通按钮).QRadioBu ...
- QT QTabWidget 控件 使用详解
本文详细的介绍了QTabWidget控件的各种操作,例如:新建界面.设置页面名字.设置提示信息.设置页面激活.设置标题栏位置.设置页面关闭按钮.设置页面关闭按钮.获取页面下标.获取页面总数.清空所有页 ...
- jQuery 表单验证插件,jQuery Validation Engine用法详解
jQuery 表单验证插件,jQuery Validation Engine用法详解 功能强大的 jQuery 表单验证插件,适用于日常的 E-mail.电话号码.网址等验证及 Ajax 验证,除自身 ...
- CSS3 Flex 弹性布局用法详解
什么是Flex弹性布局 Flex是Flexible Box的简称,意为弹性布局,顾名思义,在网页布局时,他可以给我们提供更多的灵活性. 说明: 1.flex是display的一个属性值.与之相当应的还 ...
- css文本行高是哪个属性_css属性行高line-height的用法详解
css属性行高line-height的用法详解 发布时间:2014-08-02 23:21:52 作者:佚名 我要评论 本文介绍下css中的line-height属性的用法,通过实例学习css ...
- python lambda函数-Python的Lambda函数用法详解
在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数.今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式. 1.为什么要 ...
- emit python 作用_PyQT5 emit 和 connect的用法详解
对于PyQT4, PyQT5在一些使用上有着比较明显的变化有很大的变化,让人惊讶是在emit和connect上的一些变化比较有意思,相信也是QT为了更好的和Python相结合做的改进. 先上一张图: ...
- emit python 作用,PyQT5 emit 和 connect的用法详解
对于PyQT4, PyQT5在一些使用上有着比较明显的变化有很大的变化,让人惊讶是在emit和connect上的一些变化比较有意思,相信也是QT为了更好的和Python相结合做的改进. 先上一张图: ...
最新文章
- 集生态之力跨城市数字化之难题,英特尔交上了一份完美答卷
- python【蓝桥杯vip练习题库】BASIC-23芯片测试(统计)
- loj 1316(spfa预处理+状压dp)
- Matrix工作室第六届纳新AI组考核题(A卷)
- 使用 Content-Encoding: br 替换 Content-Encoding: gzip
- dasblog的安装
- matlab根据转移函数绘制放大器幅频响应和相频响应
- Android代码抄袭Java曝猛料 新证据出现
- 宠物次元经济专题分析2020
- css js写在一起 vue_如何把vue2.0 和 animate.css合并在一起使用(详细教程)
- java 抽象类和接口1--基本概念
- TensorFlow VGG16
- 情感计算在淘宝UGC的应用
- CCKS-2017行业知识图谱构建与应用-上篇
- 无线桥接后无法访问服务器,无线桥接后不能登录副路由器ip地址的解决方法
- ALPS新秀登场TRON DeFi——让每个人都可参与的社会金融
- CISCO路由器交换机简介及Packet+Tracer使用说明
- Web前端开发三剑客是做什么的?
- 什么是数字化转型? 怎样算是转型?
- Xavier/Tx2镜像拷贝及系统克隆
热门文章
- Android之获取地理位置
- php手机打开pdf文件怎么打开,PDF文件怎么打开?手机打开PDF及编辑的技巧
- FPGA|通过AS下载固化
- Django 实现网站注册用户邮箱验证功能
- caffe配置 一生不可自决
- 塔夫茨计算机科学,塔夫茨大学计算机科学研究生语言及申请要求-费用-课程设置...
- onedrive登陆以后是白板,我下载了onedrive以后,安装到登陆界面,输入账号,提示:我们的系统中没有 - Microsoft Community...
- cp -rv linux,Linux基础知识(二)
- 绍耕反失败学课程(06)——在正确时间做正确的事情,轻装上阵抛弃负担
- windows中删除设备和驱动器中的其他软件图标