मैं इनपुट के लिए क्यूएसलाइडर (v4.6) का उपयोग कर रहा हूं और साथ ही उपयोगकर्ता को फीडबैक प्रदान करता हूं। फीडबैक के लिए मैं setValue विधि को कॉल करूँगा। मैं एक संकेत खोजने की कोशिश कर रहा हूं जो केवल तभी आग लगेगा जब उपयोगकर्ता ने मूल्य को संशोधित किया हो। वैल्यू चेंज सिग्नल आग लगती है जब उपयोगकर्ता ने मूल्य बदल दिया और साथ ही जब मैं setValue को कॉल करता हूं। स्लाइडर केवल तभी चला जाता है जब उपयोगकर्ता स्लाइडर को ड्रैग करता है (कीबोर्ड का उपयोग करते समय नहीं)। मैंने एपीआई दस्तावेज़ों की जांच की और कुछ भी नहीं ढूंढ रहा है। क्या मैं कुछ भूल रहा हूँ? ऐसा कुछ ऐसा लगता है जो आम होगा। यदि कोई अन्य सिग्नल नहीं है, तो आप इस अनुशंसा को अनुकरण करने की सलाह कैसे देंगे? क्या मुझे setValue को कॉल करने से पहले ध्वज सेट करना चाहिए, जब भी मैं setValue को कॉल करता हूं तो डिस्कनेक्ट और सिग्नल को फिर से कनेक्ट करें ...?क्यूस्लाइडर वैल्यू चेंज सिग्नल
उत्तर
अच्छा सवाल, मैंने एपीआई की जांच की और मुझे एक संकेत भी नहीं मिला जो केवल तभी ट्रिगर किया जाएगा जब उपयोगकर्ता द्वारा मूल्य संशोधित किया गया हो। वैकल्पिक हल आप प्रस्तावित ही एकमात्र विकल्प हो सकता है, बस ध्यान रखें कि आप डिस्कनेक्ट करने की जरूरत नहीं है/सभी संकेतों कनेक्ट में रखने के लिए, बस QObject::blockSignals
विधि का उपयोग करें:
slider->blockSignals(true);
slider->setValue(x);
slider->blockSignals(false);
आशा है कि मदद करता है।
धन्यवाद Pawel! मुझे ब्लॉक सिग्नल के बारे में पता नहीं था। मुझे लगता है कि करना होगा। –
शायद आप 'blockSignals (true) 'द्वारा दिए गए मान को संग्रहीत करना चाहते हैं और इसे' false' के बजाय दूसरे कॉल में उपयोग करना चाहते हैं। इस तरह अगर कुछ अन्य कोड पहले ही सिग्नल अवरुद्ध कर चुके हैं तो आप राज्य को गड़बड़ नहीं करेंगे। (मुझे आशा है कि यह समस्या असंभव है, लेकिन रक्षात्मक कोडिंग वैसे भी एक अच्छा विचार है।) –
इस विधि को पायसाइड (पायथन बाइंडिंग) में लागू किया जा सकता है, और मैंने आवेदन किया। क्यूटी डिजाइनर में परिभाषित सिग्नल को छोड़कर, परिणाम अपेक्षित है। यदि आप एक स्लाइडर को क्यूटी डिज़ाइनर में प्रोग्रेस बार से कनेक्ट करते हैं और कहते हैं, "जब स्लाइडर का मान बदल जाता है, प्रगति पट्टी का मान सेट करें" और फिर उसके मान को अपडेट करने से पहले स्लाइडर के सिग्नल को अवरुद्ध करें, तो स्लाइडर का मान अपडेट किया गया है लेकिन प्रगति बार नहीं है। यही कारण है कि, संकेतों को डिस्कनेक्ट करना और कनेक्ट करना अधिक उपयुक्त है। – ceremcem
- 1. एक वैरिएबल चेंज वैल्यू
- 2. UITextField वैल्यू चेंज इवेंट?
- 3. कॉमोबॉक्स घटना चयनित वैल्यू चेंज
- 4. जेटीबल सेल वैल्यू चेंज श्रोता
- 5. डेटटाइम पिकर वैल्यू चेंज इवेंट महीने तीर
- 6. सी फ़ंक्शन चेंज वैल्यू। दूषित ढेर?
- 7. फोनस्टेट लिस्टनर ऑन सिग्नल स्टेंथथ्स चेंज स्टॉप को सेवा
- 8. vb.net वैल्यू चेंज जोड़ें जब मूल्य बदलता है
- 9. सिग्नल सिग्नल: सिग्नल हैंडलर
- 10. सिग्नल बनाम सिग्नल 2
- 11. सिग्नल
- 12. सिग्नल
- 13. सिग्नल
- 14. सिग्नल
- 15. पीईक्यूटी क्यू ट्री व्यू: चयन से कनेक्ट करने का प्रयास किया गया चेंज सिग्नल
- 16. डोम चेंज
- 17. इंफ्राजिस्टिक्स अल्ट्राग्रिड में सेल वैल्यू चेंज पर कौन सी घटना बढ़ती है?
- 18. विंडोज़ फॉर्म एप्लिकेशन में फॉर्म लोड के दौरान चयनित वैल्यू चेंज() ईवेंट फायरिंग
- 19. ऑब्जेक्ट चेंज वैल्यू के रूप में ट्रीसेट सॉर्ट को बनाए रखने के लिए
- 20. यूआईएसविच वैल्यू चेंज इवेंट नहीं भेजता है जब प्रोग्रामेटिक रूप से बदलता है
- 21. सिग्नल स्टैक
- 22. सिग्नल क्यूटी
- 23. विंडोज फॉर्म 'चेकबॉक्स चेकड चेंज बनाम चेकस्टेट चेंज
- 24. डोमेनकॉन्टेक्स्ट कभी-कभी सबमिट चेंज के बाद हैस चेंज
- 25. इंट वैल्यू
- 26. जेड-वैल्यू
- 27. पॉइंट वैल्यू
- 28. एनम वैल्यू
- 29. डबल वैल्यू
- 30. टी-एसक्यूएल फ़ील्ड चेंज
अभी भी [Qt 5 के मूल्यChanged] (http://doc.qt.io/qt-5/qabstractslider.html#valueChanged) सिग्नल के लिए मान्य लगता है। – handle
ध्यान दें कि ['सेट न्यूनतम()' और 'सेटमैक्सिम() '] (http://doc.qt.io/qt-4.8/qabstractslider.html#minimum-prop) स्लाइडर वैल्यू को एडजस्ट कर सकता है, वैल्यू चेंज सिग्नल ट्रिगर कर सकता है। – handle