Qt 限制输入框
我有一个Qt 限制输入框,qt,qspinbox,Qt,Qspinbox,我有一个QSpinBox,我希望它只接受正自然数。这很好,直到我输入一个点 如果输入234235.23456并将焦点更改为其他微调框,则该值将更改为2342353456 因此,我正在寻找一种方法来忽略 如果没有子类化QSpinBox,这可能吗?我找到了解决问题的方法: QDoubleSpinBox * box = new QDoubleSpinBox(); box->setDecimals(0); box->setSingleStep(1.0); box->findChil
QSpinBox
,我希望它只接受正自然数。这很好,直到我输入一个点
如果输入234235.23456
并将焦点更改为其他微调框,则该值将更改为2342353456
因此,我正在寻找一种方法来忽略
如果没有子类化
QSpinBox
,这可能吗?我找到了解决问题的方法:
QDoubleSpinBox * box = new QDoubleSpinBox();
box->setDecimals(0);
box->setSingleStep(1.0);
box->findChild<QLineEdit*>()->setValidator(new QRegExpValidator(QRegExp(QString("^[1-9][0-9]*$"))));
QDoubleSpinBox*box=新的QDoubleSpinBox();
框->设置小数(0);
框->设置单步(1.0);
box->findChild()->setValidator(新的QRegExpValidator(QRegExp(QString(“^[1-9][0-9]*$”));
是否使用逗号?Qt尊重本地化设置(IIRC),因此可能没有帮助,但带有setDecimals(0)的QDoubleSpinBox可能是您的解决方法:p否则,只需重新实现。我第一次尝试了带有setDecimals(0)的QDoubleSpinBox,但其作用方式与输入逗号时的效果相同吗?Spinbox只接受0-9
中的数字,如果setDecimals(0)
则接受。