मान लीजिए कि मेरे पास MyWidget
है जिसमें MySubWidget
है, उदा। एक कस्टम विजेट जिसमें टेक्स्ट फ़ील्ड या कुछ शामिल है। मैं चाहता हूं कि अन्य वर्ग निहित MySubWidget
उदाहरण से अवगत संकेतों और स्लॉट से कनेक्ट हो सकें। यह करने के लिए पारंपरिक तरीका है:निहित विगेट्स के सिग्नल/स्लॉट को उजागर करने के लिए सही क्यूटी मुहावरे क्या है?
MyWidget
- में एक
subWidget()
विधि के माध्यम सेMySubWidget
उदाहरण के लिए सूचक बेनकाबMyWidget
कक्षा में संकेतों औरMySubWidget
की स्लॉट्स डुप्लिकेट और लिखना "अग्रेषण" कोड - कुछ और?
विकल्प 1 कम से कम कोड की तरह लगता है, लेकिन यह भी एक तरह से टूट जाता है कैप्सूलीकरण, के बाद से अब अन्य वर्गों पता है कि MyWidget
के निहित विगेट्स कर रहे हैं और उनकी कार्यक्षमता पर निर्भर हो सकता है।
चॉइस 2 ऐसा लगता है जैसे यह encapsulation रहता है, लेकिन यह बहुत ही अनावश्यक और संभावित रूप से घुलनशील कोड है जो पूरे सिग्नल और स्लॉट सिस्टम के लालित्य को गड़बड़ कर देता है।
सामान्य रूप से इस स्थिति में क्या किया जाता है?
यदि मैं उस 'सिग्नल, सिग्नल' कनेक्शन के लिए कर सकता हूं तो मैं आपको दो बार उखाड़ दूंगा। बहुत उपयोगी! –