QLineEdit 类代表编程框,它可以让用户输入一个单行文本。
构造
QLineEdit 类支持以下构造函数:
其中 contents 表示编辑框中显示的内容。
属性
alignment 属性表示显示文本的对齐方式,相关成员函数如下:
Qt::Alignment alignment() const; // 获取对齐方式
void setAlignment(Qt::Alignment align); // 设置对齐方式
它的含义与 QLabel 类的 alignment 属性相同。
1)Qt::AlignLeft::水平方向靠左。
2)Qt::AlignRight:水平方向靠右。
3)Qt::AlignHCenter:水平方向居中。
4)Qt::AlignJustify:水平方向调整间距两端对齐。
5)Qt::AlignTop:垂直方向靠上。
6)Qt::AlignButton:垂直方向靠下。
7)Qt::AlignVCenter:垂直方向居中。
8)Qt::AlignCenter:等价于 Qt::AlignHCenter | Qt::AlignVCenter。
其中一个水平方向的取值和一个垂直方向的取值可以用 “按位或” 的方式组合起来以同时指定两个方向的对齐方式。默认的对齐方式为水平靠左、垂直居中。
EchoMode echoMode() const; //获取回声状态
void setEchoMode(EchoMode); //设置回声状态
QLineEdit::Normal 0 //正常明文状态
QLineEdit::NoEcho 1 //不显示任何文本及长度,可能适用于密码输入
QLineEdit::Password 2 //密码掩码输入,焦点重回可以继续输入
QLineEdit::PasswordEchoOnEdit 3 //明文编辑,密码掩码显示,焦点重回不可以继续输入
maxLength 属性表示编辑框可以容许的最大输入长度,相关成员函数如下:
readOnly 属性表示编辑框的内容是否为只读的,即内容是否可以被用户修改,相关成员函数如下:
text 属性表示编辑框的内容,相关的成员函数如下:
其中 setText 函数同时也是一个槽。要注意编辑框的内容不一定就是编辑框显示的内容,比如一个密码输入编辑框,用户输入的密码是不显示出来的。如果要得到编辑框的内容,则需使用下民的成员函数:
frame 属性控制编辑框有没有边框,相关成员函数如下:
下面两个成员函数虽然不是属性,但也与文本的显示有关:
这两个函数分别用于设置和获取文本显示的边距,上、下、左、右 4 个边距可以独立进行设置。
信号
当编辑框的内容发生变化时,将发射以下信号:
其中参数 text 是发生变化后的内容。
当编辑框的内容被编辑时,将发射以下信号:
其中参数 text 是编辑后的内容。它与 textChanged 信号的主要区别在于,它只是在用户进行修改的时候发射,在程序中用 setText 修改时则不发射,而后者则在两种情况下都会发射。
当在编辑框中按下回车键时,将发射以下信号:
这个信号将在按下回车键或者编辑框失去焦点时发射。
槽
调用下面的槽可以清空编辑框中的内容:
使用正则限制输入文本类型及长度:
//设置只能输入数字,最长为2位
QRegExp rx("[0-9]{2}");
ui->lineEdit_fontSize->setValidator(new QRegExpValidator(rx, this));
QAction *pTrailingAction = new QAction(this); pTrailingAction->setIcon(QIcon("G:/1.ico")); ui->lineEdit->addAction(pTrailingAction, QLineEdit::TrailingPosition); // 连接信号和槽 connect(pTrailingAction, &QAction::triggered, this, &Widget::onSearch);
void Widget::onSearch(bool) { qDebug()<<"图标被单击"; }