再MFC编程中个,可以将输入框与某种类型的变量(如int型)绑定,此后只能输入此类型的值。
那么,在Qt编程中,如何使得QLineEdit也有类似的效果呢?方法是设置QLineEdit的Validator,具体有不同的形式。
1 正则表达式
根据参考资料[1],可以使用下面的形式。
QRegExp regx("[0-9]+$"); QValidator *validator = new QRegExpValidator(regx, this); ui->lineEdit->setValidator( validator );
关于正则表达式的更多用法,可见参考资料[2],里面对如何限制QLineEdit只能输入浮点数及其范围等做了较为详细的说明。
2 QIntValidator/QDoubleValidator
根据参考资料[2]的说明,可是使用QIntValidator或者QDoubleValidator,分别限制QLineEdit只可输入整数或者浮点数。
lineEdit->setValidator(new QIntValidator(0, 1000, this));
lineEdit->setValidator(new QDoubleValidator(-180.0,180.0,6,this));
参考资料
[1]怎么让QLineEdit中只能输入数字?
[2]限制QLineEdit的数值输入范围