स्वीकार करने के लिए QLineEdit सेट करें मेरे पास QLineEdit
है जहां उपयोगकर्ता को केवल संख्याओं को इनपुट करना चाहिए।केवल संख्या
तो क्या QLineEdit
के लिए केवल संख्याओं की सेटिंग है?
स्वीकार करने के लिए QLineEdit सेट करें मेरे पास QLineEdit
है जहां उपयोगकर्ता को केवल संख्याओं को इनपुट करना चाहिए।केवल संख्या
तो क्या QLineEdit
के लिए केवल संख्याओं की सेटिंग है?
QLineEdit::setValidator()
, उदाहरण के लिए:
myLineEdit->setValidator(new QIntValidator(0, 100, this));
या
myLineEdit->setValidator(new QDoubleValidator(0, 100, 2, this))
देखें: QIntValidator, QDoubleValidator, QLineEdit::setValidator
सबसे अच्छा 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)));
भले ही ओपी एक QLineEdit के साथ काम करना चाहता है, क्यूएसपीनबॉक्स का उपयोग करना निश्चित रूप से सबसे अच्छा तरीका है। – DrHaze
यह तब काम करता है जब संख्या सीमा छोटी होती है। इस बारे में सोचें कि आप इस विजेट का उपयोग उम्र या आईडी के लिए करना चाहेंगे। – Steve
स्पिनबॉक्स को केवल कुंजी कुंजी, दशमलव विभाजक और बैकस्पेस के साथ काम करने के लिए अधिक कीबोर्ड अनुकूल बनाने का कोई तरीका है? – Micka
तुम भी एक inputMask
सेट कर सकते हैं:
QLineEdit.setInputMask("9")
यह उपयोगकर्ता केवल एक 0
से 9
को लेकर अंकों टाइप करने के लिए अनुमति देता है। उपयोगकर्ता को एकाधिक संख्याएं दर्ज करने की अनुमति देने के लिए एकाधिक 9
का उपयोग करें। पूरा list of characters that can be used in an input mask भी देखें।
(मेरा जवाब अजगर में है, लेकिन यह सेल्सियस के लिए यह ++ को बदलने के लिए मुश्किल नहीं होना चाहिए)
क्यों आप इस उद्देश्य के लिए एक QSpinBox
का उपयोग नहीं करते?
// ...
QSpinBox* spinBox = new QSpinBox(this);
spinBox->setButtonSymbols(QAbstractSpinBox::NoButtons); // After this it looks just like a QLineEdit.
//...
आप क्यूटी निर्माता 5.6 उपयोग कर रहे हैं आपको लगता है कि इस तरह से कर सकते हैं:: आप कोड की निम्न पंक्ति के साथ अदृश्य ऊपर/नीचे बटन सेट कर सकते हैं
#include <QIntValidator>
ui->myLineEditName->setValidator(new QIntValidator);
मैं सिफारिश आपको लगता है कि डाल ui-> setupUi (यह) के बाद लाइन;
मुझे उम्मीद है कि इससे मदद मिलती है।
आपका कन्स्ट्रक्टर आमंत्रण 'नया QIntValidator (यह) 'होना चाहिए, अन्यथा आपका विजेट स्कोप से बाहर निकलने पर सत्यापनकर्ता ऑब्जेक्ट रिसाव हो जाएगा। – Alexandros
क्या यह क्यूटी डिजाइनर से किया जा सकता है, या यह केवल कोड के माध्यम से संभव है? – sashoalm
मेरे ज्ञान के लिए डिजाइनर में ऐसा करने का कोई तरीका नहीं है। – Chris
यदि आपको वैज्ञानिक नोटेशन में दिए गए इनपुट की आवश्यकता है तो यह एक त्वरित समाधान है (उदा।, '3.14e-7')। 'QDoubleSpinBox' वैज्ञानिक नोटेशन (क्यूटी 5.5) में संख्या स्वीकार नहीं करता है। –