设置QLineEdit只接受数字
我有一个QLineEdit
用户只能input数字。
那么QLineEdit
有没有数字设置?
QLineEdit::setValidator()
,例如:
myLineEdit->setValidator( new QIntValidator(0, 100, this) );
要么
myLineEdit->setValidator( new QDoubleValidator(0, 100, 2, this) )
请参阅: QIntValidator , QDoubleValidator , QLineEdit :: setValidator
最好的是QSpinBox
。
而对于双值使用QDoubleSpinBox
。
QSpinBox myInt; myInt.setMinimum(-5); myInt.setMaximum(5); myInt.setSingleStep(1);// Will increment the current value with 1 (if you use up arrow key) (if you use down arrow key => -1) myInt.setValue(2);// Default/begining value myInt.value();// Get the current value //connect(&myInt, SIGNAL(valueChanged(int)), this, SLOT(myValueChanged(int)));
你也可以设置一个inputMask
:
QLineEdit.setInputMask("9")
这允许用户只键入从0
到9
一个数字。 使用多个9
来允许用户input多个号码。 另请参阅可在input掩码中使用的完整字符列表 。
(我的答案是在Python中,但不应该很难将其转换为C ++)
为什么不使用QSpinBox
来达到这个目的呢? 您可以使用以下代码行将上/下button设置为不可见:
// ... QSpinBox* spinBox = new QSpinBox( this ); spinBox->setButtonSymbols( QAbstractSpinBox::NoButtons ); // After this it looks just like a QLineEdit. //...
如果你使用的是QT Creator 5.6,你可以这样做:
#include <QIntValidator> ui->myLineEditName->setValidator( new QIntValidator);
我build议你在ui-> setupUi(this)之后加上那一行。
我希望这有帮助。