c++ - qvalidator - Establezca QLineEdit para aceptar solo números
qt signal qlineedit (5)
¿Por qué no usa un QSpinBox
para este propósito? Puede configurar los botones arriba / abajo como invisibles con la siguiente línea de códigos:
// ...
QSpinBox* spinBox = new QSpinBox( this );
spinBox->setButtonSymbols( QAbstractSpinBox::NoButtons ); // After this it looks just like a QLineEdit.
//...
Tengo un QLineEdit
donde el usuario debe ingresar solo números.
Entonces, ¿hay una configuración de solo números para QLineEdit
?
Lo mejor es QSpinBox
.
Y para un valor doble use 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)));
Si está utilizando QT Creator 5.6, puede hacerlo así:
#include <QIntValidator>
ui->myLineEditName->setValidator( new QIntValidator);
Recomiendo poner esa línea después de ui-> setupUi (esto);
Espero que esto ayude.
También podría establecer una inputMask
:
QLineEdit.setInputMask("9")
Esto le permite al usuario escribir solo un dígito que va de 0
a 9
. Use múltiples 9
para permitir al usuario ingresar varios números. Vea también la inputMask completa inputMask .
(Mi respuesta está en Python, pero no debería ser difícil transformarla en C ++)
QLineEdit::setValidator()
, por ejemplo:
myLineEdit->setValidator( new QIntValidator(0, 100, this) );
o
myLineEdit->setValidator( new QDoubleValidator(0, 100, 2, this) )
Ver: QIntValidator , QDoubleValidator , QLineEdit::setValidator