【问题标题】:restrict Input QSpinBox限制输入 QSpinBox
【发布时间】:2015-01-31 20:31:12
【问题描述】:

我有一个QSpinBox,我希望它只接受正的自然数。这工作正常,直到我输入一个点.

如果我输入 234235.23456 并将焦点更改为其他旋转框,则值将更改为 23423523456

所以我正在寻找一种方法来忽略 . 背后的所有内容

如果没有子类化QSpinBox,这可能吗?

【问题讨论】:

  • 使用逗号? Qt 尊重本地化设置 (IIRC),因此可能会有所帮助
  • 可能没有,但是带有 setDecimals(0) 的 QDoubleSpinBox 可能是您的解决方法。 :p 否则,只需重新实现this
  • 我首先用 setDecimals(0) 尝试了 QDoubleSpinBox,但它的作用相同
  • 如果输入逗号,是否可以正常工作?
  • Spinbox 只接受来自0-9 的数字,如果是setDecimals(0) 则接受.

标签: qt qspinbox


【解决方案1】:

我找到了解决问题的方法:

QDoubleSpinBox * box = new QDoubleSpinBox();

box->setDecimals(0);
box->setSingleStep(1.0);

box->findChild<QLineEdit*>()->setValidator(new QRegExpValidator(QRegExp(QString("^[1-9][0-9]*$"))));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-22
    • 2014-03-01
    • 2016-09-26
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多