2014-12-03 180 views
2

我有一個QSpinBox,我希望它只接受正自然數。這工作正常,直到我輸入一個點.限制輸入QSpinBox

如果我輸入234235.23456並將焦點更改爲其他某個spinbox,則該值更改爲23423523456

所以我要尋找一個辦法忽略背後的.

一切這是可能沒有子QSpinBox

+0

使用逗號? Qt尊重本地化設置(IIRC),以便可以幫助 – 2014-12-03 10:43:44

+3

可能不是,但QDoubleSpinBox和setDecimals(0)可能是您的解決方法。 :否則,只需重新實現[this](http://doc-snapshot.qt-project.org/qt5-5.4/qspinbox.html#textFromValue)。 – lpapp 2014-12-03 10:47:33

+0

我第一次嘗試使用setDecimals(0)的QDoubleSpinBox,但它的行爲方式相同 – user2699453 2014-12-03 10:59:07

回答

2

我發現我的porblem修復:

QDoubleSpinBox * box = new QDoubleSpinBox(); 

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

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

謝謝你,你剛纔打開了我的想法:) – 2016-11-14 17:55:34