57
A
回答
88
QLineEdit::setValidator()
,例如:
myLineEdit->setValidator(new QIntValidator(0, 100, this));
或
myLineEdit->setValidator(new QDoubleValidator(0, 100, 2, this))
16
最好是QSpinBox
。
而對於雙值使用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)));
7
您還可以設置一個inputMask
:
QLineEdit.setInputMask("9")
這允許用戶鍵入只有一個數字,從0
到9
。使用多個9
來允許用戶輸入多個號碼。另見完整的list of characters that can be used in an input mask。
(我的答案是Python,但它不應該是很難將它轉換成C++)
5
你爲什麼不使用QSpinBox
用於此目的?您可以設置使用以下行代碼的無形的上/下按鈕:
// ...
QSpinBox* spinBox = new QSpinBox(this);
spinBox->setButtonSymbols(QAbstractSpinBox::NoButtons); // After this it looks just like a QLineEdit.
//...
1
如果您在使用Qt Creator的5.6,你可以是這樣做的:
#include <QIntValidator>
ui->myLineEditName->setValidator(new QIntValidator);
我建議你把在ui-> setupUi(this)之後行;
我希望這會有所幫助。
+4
您的構造函數調用應該是'new QIntValidator(this)',否則只要您的小部件超出範圍,驗證器對象就會泄漏。 – Alexandros
相關問題
- 1. QLineEdit只接受整數和「和/字符?
- 2. 如何設置NumberTextBox只接受dojo中的數字?
- 3. 數字字段只接受數和`,`
- 4. 是否可以設置EditText只接受android中的unicode字符?
- 5. javascript函數只接受4位數字
- 6. Grails:我如何讓g:textfield只接受數字或只接受字母?
- 7. 將SQL列類型設置爲varchar(50),只接受整數
- 8. Python:Boto3:get_metric_statistics()只接受關鍵字參數
- 9. 只接受整數爲井字
- 10. 只接受文本框中的數字
- 11. 只接受數字作爲GET變量
- 12. WPF TextBox只接受一個數字
- 13. 在java中只接受一個數字
- 14. 文本框PreviewTextInput - 只接受數字和「:」
- 15. 輸入文本只接受數字
- 16. Asp.net C#InputBox只接受數字
- 17. QLineEdit可見寬度設置?
- 18. 將WCF NetTcpBinding設置爲只接受本地連接時出錯
- 19. C++ - 設置接受值
- 20. 不接受默認設置
- 21. 當QlineEdit設置背景圖像時,如何在QLineEdit中設置文本顏色
- 22. 套接字只接受特定地址?
- 23. Javascript表單驗證。街牌號碼。如何將接受的數字設置爲1但接受數字1-99999
- 24. 正則表達式只接受字母數字數據
- 25. Entlib驗證語法只接受數字月份數字?
- 26. 編輯文本,只接受(無輸入類型被設置)字母
- 27. 如何創建只接受數字的文本框和只接受WPF中的字母的文本框?
- 28. 接受的套接字的設置緩衝區大小
- 29. TextBox只接受int
- 30. PyQt5如何設置QLineEdit行爲,如'\ n'
這可以從Qt Designer完成,還是隻有通過代碼才能實現? – sashoalm
據我所知,設計師無法做到這一點。 – Chris
如果您需要以科學記數法(例如,'3.14e-7')輸入,這是一個快速解決方案。 'QDoubleSpinBox'不接受科學記數法中的數字(Qt 5.5)。 –