qt - signals and slots in multilayered UI widgets -
मान लें कि हमारे पास follogin UI है:
+ ------- ------------------- + | W1 + -------------- + | | | | W2 | | | | + ---------- + | | | | | W3 | | | | | + ---------- + | | | | | | | + -------------- + | + -------------------------- +
डब्लू 3 एक विशिष्ट संकेत W1 में उत्सर्जित किया गया है या नीचे एक स्तर, अर्थात qApp)।
विचार W3 स्वतंत्र रूप से विकसित करना है लेकिन किसी को सिग्नल / स्लॉट कनेक्शन करना पड़ता है।
यदि W3 को किसी भी अन्य विजेट के बारे में नहीं जानना चाहते हैं, तो डब्लू 3 में स्लॉट में डब्लू 1 में उत्सर्जित संकेत को जोड़ने का एक अच्छा अभ्यास / अनुशंसित तरीका क्या होगा, और हम नहीं चाहते कि W1 को डब्लू 3 के बारे में पता होना चाहिए?
समाधान 1: W2 में सिग्नल के साथ W1 में सिग्नल के साथ कनेक्ट सिग्नल (संकेत तकनीक सिग्नल) और इसलिए W2 में स्लॉट में W2 में संकेत कनेक्ट करें।
समाधान 2: एक QApp सिग्नल जेनरेट करें और W2 में स्लॉट के साथ W2 में कनेक्ट करें।
समाधान 3: एक क्यूएफ़एप सिग्नल जेनरेट करें और W3 स्वयं को इसके स्लॉट का उपयोग करके कनेक्ट करें।
धन्यवाद
आम तौर पर संलग्न विजेट उसके अंदर विजेट को एनक्यूलेट करता है और एक उच्च स्तर इंटरफेस। उदाहरण के लिए, यदि W3 में कुछ राज्यों के आधार पर सक्षम / अक्षम किए जाने वाले कई विगेट्स शामिल हैं, तो W3 उस स्थिति का प्रबंधन करेगा, इसके लिए एपीआई प्रदान करेगा और इसके अनुसार विगेट्स को सक्षम / निष्क्रिय कर देगा। इसलिए आमतौर पर W1 से W3 तक सीधे जाने की कोई आवश्यकता नहीं है।
यदि विगेट्स को एक दूसरे के बारे में नहीं पता है (जैसे बी / सी डब्ल्यू 1 एक सामान्य कंटेनर विजेट है जो कुछ भी एम्बेड कर सकता है), तो जो यूआई को इकट्ठा करता है, सभी शामिल विजेट जानना चाहिए कनेक्शन।
मुझे नहीं पता कि आप "क्यूएपी सिग्नल" से क्या कह रहे हैं, लेकिन यह सब कुछ से जुड़ी हुई केंद्रीय वस्तु की तरह बहुत ज्यादा लगता है, जो बिल्कुल अच्छा डिजाइन नहीं है।
हो सकता है कि आपका कोई विशिष्ट उदाहरण आपके पास है?
Comments
Post a Comment