QLineEdit类

QLineEdit单行输入框,它直接继承自QWidget

1.构造函数

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

2.常用属性

QLineEdit的属性包括以下这些:

image-20231007143758035

冷知识:Qt中的属性是Qt中独创的一个新特性,每一个属性都可以进行读写,即每个属性都有个叫setXXX()的函数可以设置该属性的值。

2.1重要的属性说明

属性 含义
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) 方法修改。
inputmask 可以指定输入的有效格式,比如将inputmask设置为AAA,则只能输入3位的A-Z的字符串,不符合的无法输入。maxlength属性也会对应地被修改。

3.常用函数

image-20231007145331355

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

4.常用信号

image-20231007145314761

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