और editingFinished
QLineEdit
के लिए गठबंधन करने का कोई तरीका है? समस्या यह है कि editingFinished
उत्सर्जित होता है भले ही मैं केवल कर्सर को QLineEdit
से बिना किसी बदलाव के स्थानांतरित कर दूं। जबकि मैं केवल एक सिग्नल उत्सर्जित करना चाहता हूं जब संपादन समाप्त होने के बाद कोई भी परिवर्तन किया गया।PyQt4: टेक्स्ट गठबंधन करें और संपादित करें QLineEdit
मैं कल्पना कर सकता हूं कि केवल वर्तमान पाठ को स्टोर करने के लिए, इसके साथ दर्ज किए गए टेक्स्ट की तुलना करें और केवल तभी कुछ करें जब यह अलग हो। लेकिन मुझे आश्चर्य है कि सिग्नल हैंडलिंग पर आधारित कोई समाधान है या नहीं।
संपादित करें: अंत में मुझे वर्तमान पाठ को स्टोर करना था और नए पाठ की तुलना करना था और प्रस्तावित समाधान का पालन नहीं करना था। मुझे एहसास हुआ कि मेरे आवेदन में "1.2345" और "1.23" एक ही पाठ होगा लेकिन फिर भी मुझे इस मामले में कुछ अन्य मूल्यों को अपडेट करना होगा और इसी तरह। मैं वास्तव में @Avaris और @ekhumoro द्वारा विस्तृत उत्तर और टिप्पणियों की सराहना करता हूं, और मूल रूप से पोस्ट की गई समस्या को हल करने के बाद से इसे स्वीकार करूँगा।
आपका समाधान अपूर्ण लगता है। उदाहरण के लिए, अगर लाइन-एडिट का संदर्भ मेनू खोला जाता है तो संकेत सिग्नल हो जाएगा (इसलिए शायद आपको 'event.reason() ') की जांच करनी होगी। इसके अलावा, सिग्नल * वापस नहीं होगा * अगर वापसी/एंटर दबाया जाता है - तो कुछ कीबोर्ड हैंडलिंग की आवश्यकता होती है। – ekhumoro
@ekhumoro: आप उन मुद्दों के बारे में सही हैं। मेरा जवाब अपडेट किया गया। – Avaris
बुरा नहीं - लेकिन क्या होगा यदि उदा। 'setText() 'या' clear() 'संपादन के बीच कहा जाता है? – ekhumoro