问题
今儿有个需求要限制一下QLineEdit
控件的输入,使其只能输入数字(包括浮点数),方法是:设置 QLineEdit
的输入验证器为 QIntValidator
或 QDoubleValidator
来限制输入为整数或浮点数。
代码如下:
cpp
#include <QLineEdit>
#include <QDoubleValidator>
// 在窗口或控件的初始化函数中
QDoubleValidator *validator = new QDoubleValidator(this);
validator->setNotation(QDoubleValidator::StandardNotation);
validator->setRange(0.0, 100.0); // 设置允许的范围,这里假设是 0 到 100
this->ui->lineEdit1->setValidator(validator);
this->ui->lineEdit2->setValidator(validator);
运行发现问题,QLineEdit只能输入数字,在输入小数点后,不能输入小数位。
解决方法
改了个写法,代码如下:
cpp
// 限制输入为浮点数
QDoubleValidator *validator = new QDoubleValidator(0.0000, 100.0000, 4, this); // 限制范围为 0.00 到 100.00,保留 4 位小数
validator->setNotation(QDoubleValidator::StandardNotation);
this->ui->lineEdit1->setValidator(validator);
this->ui->lineEdit2->setValidator(validator);
一切ok~