की सीमा के भीतर प्रवेश की अनुमति दें मेरे पास QLineEdit
एस का एक सेट है जो किसी निश्चित सीमा के भीतर डबल मान स्वीकार करने के लिए माना जाता है, (उदा। -15 से 15)।QDoubleEdit में केवल QDoubleValidator
lineEdit->setValidator(new QDoubleValidator(minVal, maxVal, 5, lineEdit));
आदर्श रूप में, लाइन संपादन इस तरह काम करेगा कि केवल सीमा में मूल्यों प्रवेश किया जा सकता:
मैं जब प्रत्येक की स्थापना इन पंक्तियों के साथ कुछ है। जब मैंने इसे आजमाया, मैंने देखा कि वांछित के रूप में केवल संख्याएं टाइप की जा सकती हैं, लेकिन वे अभी भी सीमा से बाहर जा सकते हैं।
कैसे मैं गतिशील रेंज में फिट करने के लिए इनपुट मजबूर कर सकते हैं (उदाहरण के लिए, अगर रेंज -15 से 15 और उपयोगकर्ता के एक 1 है, तो एक 9 टाइप करने के लिए प्रयास करता है, यह काम नहीं करता/9 प्रदर्शित .. लेकिन एक टाइप टाइप करके और फिर, कहें, 2 काम करता है/प्रदर्शित करता है 2.)? क्या मुझे कहीं भी validate()
फ़ंक्शन कनेक्ट करने और कॉल करने की आवश्यकता है?
मैं इस अनुकूलित सदस्यों के रूप में न्यूनतम और अधिकतम को बचाने के लिए, क्योंकि वे अलग-अलग हो के लिए मेरे अलग लाइन संपादन निष्पादित के रूप में, और यह एक आकर्षण की तरह काम करता है। हालांकि, उपयोगकर्ता को ऋणात्मक संख्या के लिए प्रारंभिक नकारात्मक चिह्न दर्ज करने की इजाजत देने में परेशानी होती है। मैं सोच रहा हूं कि सिर्फ इस समाधान की लागत हो सकती है .. – nicole
धन्यवाद! मैंने QDoubleValidator, setNotation (QDoubleValidator :: StandardNotation), और QLineEdit इनपुट मास्क पर एक दिन बर्बाद कर दिया है। जैसा कि मैंने उम्मीद की थी, इसमें से कोई भी व्यवहार नहीं करता था। चरित्र प्रविष्टि द्वारा पुराने स्कूल-पार्स चरित्र को लागू करना जल्दबाजी में होता। वास्तव में काम करने वाले समाधान के लिए धन्यवाद! (मैंने दशमलव परिवर्तन के बाद "-", फिक्स्ड चार के अलावा "+" को अनुमति देने के लिए कुछ बदलाव किए हैं, और शीर्ष और नीचे सहित श्रेणी परीक्षण बनाया है) –