मैं GUI पुस्तकालयों के एक जोड़े पर सामान्यीकरण कर रहा हूं लेकिन एक बहुत ही उच्च स्तर पर सबसे महत्वपूर्ण अवधारणा जिसे आपको समझने की आवश्यकता है वह यह है कि GUI संचालित है ।
कंसोल एप्लिकेशन में आपका उपयोगकर्ता इनपुट आमतौर पर आपके द्वारा निर्धारित कुछ बिंदुओं पर होता है। आप अपने उपयोगकर्ता को संकेत देते हैं, आप उसके इनपुट की प्रतीक्षा करते हैं, आप उस इनपुट के आधार पर कुछ गणना करते हैं। मुख्य अंतरों में से एक यह है कि इनपुट केवल एक ही स्थान पर होता है, आप कमांडलाइन से पाठ पढ़ रहे हैं ( stdin
C ++ में)।
जीयूआई एप्लिकेशन में आपके पास आमतौर पर कई स्थान होते हैं जहां इनपुट हो सकता है, उदाहरण के लिए बटन जो विभिन्न कार्यों या पाठ क्षेत्रों का प्रदर्शन करते हैं। यह वह जगह है जहां घटनाएं खेल में आती हैं। उदाहरण के लिए, एक बटन क्लिक करने से एक घटना शुरू होती है। इस घटना को एक इवेंट हैंडलर द्वारा नियंत्रित करने की आवश्यकता है , जो आमतौर पर सिर्फ एक विधि है जो एक इवेंट ऑब्जेक्ट लेता है एक कहा जाता है जब ऐसा एक भी ट्रिगर होता है। ईवेंट हैंडलर के बारे में आपका बटन कैसे जानता है? आप आमतौर पर सदस्यता लेते हैं (या इसे सुनते हैं)।
यहाँ एक "C ++ प्रेरित" उदाहरण है, यह वास्तविक qt या C ++ कोड नहीं है।
class MyClickHandler : public ClickListener{
void clickHandler(ClickEvent e){
showAlertBox("The button "+e.getSource().getName()+" has been clicked");
}
};
जब आप बटन बनाते हैं, तो आप बटन के खिलाफ MyClickHandler वर्ग का एक उदाहरण दर्ज करते हैं।
...
MyClickHandler handler();
Button b("Save");
b.registerListener(handler);
...
अब हर बार बटन पर b
क्लिक करने पर एक संदेश बॉक्स दिखाई देता है, जिसमें कहा गया है कि "बटन सहेजें पर क्लिक किया गया है"।
आप सोच सकते हैं कि GUI एप्लिकेशन के दो चरण हैं:
- जीयूआई स्थापित करें: स्टार्टअप पर एक छोटी अवधि, जहां सभी ऑब्जेक्ट बनाए जाते हैं और एक दूसरे के साथ जुड़े होते हैं।
- घटना पाश : अपने जीयूआई जबकि पाश एक बड़ा में है और सिर्फ वहाँ बैठी है सुस्ती जब तक एक घटना शुरू हो रहा है।
यह एक बहुत ही सरल उदाहरण है, लेकिन जब भी कोई बटन क्लिक किया जाता है तो आप संदेश बॉक्स दिखाने की कोशिश करने वाले जो भी ढांचा उठाते हैं, मैं उसके साथ सुझाव दूंगा।
ढांचे के लिए, उनमें से बहुत सारे हैं: सी ++ के मामले में मैं शायद क्यूटी की सिफारिश करूंगा।
सलाह का एक अंतिम शब्द: जब तक आप वास्तव में पृष्ठभूमि में क्या हो रहा है, तब तक GUI डिजाइनरों से दूर रहें। ऐसा नहीं है कि कुछ सरल उदाहरण लिखना मुश्किल है और पहले इवेंट लूप को समझना और फिर अधिक जटिल लेआउट पर आगे बढ़ना है।