Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 限制输入框_Qt_Qspinbox - Fatal编程技术网

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)
则接受