一、控件的描述
QLineEdit是一个单行文本编辑控件。使用者可以通过很多函数,输入和编辑单行文本,比如撤销、恢复、剪切、粘贴以及拖放等。
二、函数应用
void setValidator(const QValidator * v)
限制文本输入框的内容。
设置输入框的验证器,将限制任意可能输入的文本。如果v == 0,将会清除当前的输入验证器,如果v = = 0,setValidator()删除当前的输入验证器。初始设置是没有输入验证器(即:接受任何输入到maxLength())。
(1)输入int类型整数:
//限制输入0-100的整数
QIntValidator *validator = new QIntValidator(0, 100, this);
ui->lineEdit->setValidator(validator);
(2)输入浮点数类型 限制
//限制小数点后两位0.00-0.99
QDoubleValidator *validator = new QDoubleValidator(0, 100, 2, this);
ui->lineEdit->setValidator(validator);
//给m_editX和m_editY添加浮点数验证器
//ui->m_editX->setValidator(new QDoubleValidator(this));
//ui->m_editY->setValidator(new QDoubleValidator(this));
(3)正则表达式 限制
//-90 到 90 限制了小数点后4位的输入区间限制
QRegExp wx("^-?(90|[1-8]?\\d(\\.\\d{1,4})?)$");
QRegExpValidator *latitude = new QRegExpValidator(wx, this);
ui->lineEdit_4->setValidator(latitude);
(4)无限 限制
ui->lineEdit_4->setValidator(0);
void setReadOnly(bool status)
只读模式;
通过设置setReadOnly接口的true或false来控制QLineEdit是否启用该模式。在只读模式下,用户仍然可以将文本复制到剪贴板,或者拖放文本(但回显需是Normal模式),但是不能编辑它。另外只读模式下不显示光标。默认为false。
//启用只读模式
ui->lineEdit->setReadOnly(true);
void setText ( const QString & )
设置行编辑框内的文本内容
ui->lineEdit->setText("123");
void setEchoMode ( EchoMode )
设置行编辑框内文本的显示模式
(1)QLineEdit::Normal:默认,输入什么即显示什么
QLineEdit *edit = new QLineEdit;
edit->setEchoMode(QLineEdit::Normal);
(2)QLineEdit::Password:密码,一般是用小黑点覆盖你所输入的字符
ui->lineEdit->setEchoMode(QLineEdit::Password);
(3)QLineEdit::PasswordEchoOnEdit:编辑时输入字符显示输入内容,其他时候用小黑点代替
ui->lineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);
(4)QLineEdit::NoEcho:任何输入都看不见(只是看不见,不是不能输入)
ui->lineEdit->setEchoMode(QLineEdit::NoEcho);
void setEnabled(bool)
设置是否激活行编辑框
//不可编辑
ui->lineEdit->setEnabled(false);
QString text () const
获取行编辑文本内容
//将编辑文本框的内容123获取并赋值给value
QLineEdit *edit = new QLineEdit;
edit->setText("123");
QString value = edit->text();
void QLineEdit::focusInEvent ( QFocusEvent * e )
[virtual protected](虚函数,实现时必须重写)
获得焦点,即光标在文本框里面一闪一闪的
void QLineEditEx::focusInEvent(QFocusEvent* event)
{
QLineEdit::focusInEvent(event);
QTimer::singleShot(0, this, &QLineEdit::selectAll);
}
setPlaceholderText(const QString &placeholderText)
只要QLineEdit为空,设置此属性就会使编辑器显示灰色占位符文本。
ui->m_editX->setPlaceholderText(tr("请输入温度"));
//m_editX为QLineEdit