2008-12-11 15 views
65

मैं क्यूटी 4 ढांचे (एक क्रॉस-प्लेटफार्म जीयूआई आवश्यक) का उपयोग कर सी ++ में एक प्रोजेक्ट शुरू करने की सोच रहा हूं। मैंने मित्रों और ऑनलाइन से बूस्ट पुस्तकालयों के बारे में महान बातें सुनी हैं। मैंने दोनों पर पढ़ना शुरू कर दिया है और बहुत गहरा होने से पहले एक कर्सर प्रश्न पूछना चाहता था: क्या ये दो विकास "सिस्टम" पारस्परिक रूप से अनन्य हैं?मिक्सिंग क्यूटी और बूस्ट

मेरी प्रारंभिक खोज और पढ़ना सिग्नल हैंडलिंग, कस्टम बिल्ड सिस्टम और अन्य निम्न-स्तर के प्राइमेटिव में कुछ ओवरलैप दिखाती है।

क्या यह एक ही प्रोजेक्ट में दोनों का उपयोग करने के लिए समझ में आता है?

उत्तर

55

हां यह सही समझ में आता है। मैं आमतौर पर बूस्ट/stdlib कार्यों का उपयोग करना पसंद करूंगा जहां उनके क्यूटी विकल्प के बजाय संभव हो।

यह कोड को अगले ढांचे पर बंदरगाह को आसान बनाता है।
नए गैर-क्यूटी प्रोग्रामर के लिए गति तक पहुंचना आसान बनाता है।
बूस्ट में कुछ शानदार कार्यक्षमता है और यह हर समय अधिक हो रही है।

नोट: विगेट्स के लिए स्ट्रिंग्स शायद मुख्य अपवाद हैं - जीयूआई के अंदर मैं हर जगह उलझन में रहने के लिए क्यूटी स्ट्रिंग का उपयोग करूंगा।

+30

क्यूटी में भी बड़ी कार्यक्षमता है और यह भी हर समय अधिक हो रही है। क्यूटी के बूस्ट की तुलना में महान (बेहतर) दस्तावेज है (दोनों का उपयोग करने के अपने अनुभव के आधार पर)। कोई तर्क दे सकता है कि बूस्ट का उपयोग करना गैर-बूस्ट प्रोग्रामर के लिए भी कठिन बनाता है। – sivabudh

+12

बूस्ट के लिए सच है, लेकिन मैं अभी भी क्यूटी के संग्रह वर्ग –

7

हम (Last.fm) दोनों एक साथ दोनों का उपयोग करते हैं, हालांकि हमने अभी ऐसा करने शुरू कर दिया है, और इसलिए अभी तक अनुभव का अच्छा सौदा नहीं है। अभी तक सबकुछ ठीक है :)

17

खासकर जब आप क्रॉस-प्लेटफ़ॉर्म जा रहे हैं, तो आपके पास अच्छी तरह से स्तरित आर्किटेक्चर होना चाहिए, व्यवसाय तर्क और डेटा पहुंच के साथ जीयूआई से जितना संभव हो सके हटा दिया जाना चाहिए। इस मामले में, आपके आवेदन के बैकएंड को लिखते समय बूस्ट का उपयोग करना समझदारी होगी, और गोंद में किए गए कास्टों के अनिवार्य ढेर के साथ, केवल फ्रंटेंड के लिए क्यूटी पर कूदें।

यदि आपका "इंजन" आपकी जीयूआई पसंद से अलग है, तो आप कम से कम प्रयास के साथ भविष्य में कुछ और (देशी पुस्तकालयों) के लिए क्यूटी को स्वैप करने में सक्षम होंगे।

3

क्यूटी के साथ बूस्ट सिग्नल का उपयोग करने में संभावित समस्याएं हैं। ये Boost.Signals FAQ में प्रलेखित हैं।

31

This paper क्यूटी में signal slots तंत्र की तुलना Boost::Signal की तुलना में बहुत ही कम है। यह उन लोगों के लिए पढ़ा जाना चाहिए जो इस मिश्रण के थोड़ा उत्सुक हैं।

+1

अच्छा कागज पर std :: वेक्टर आदि का उपयोग करता हूं। लिंक के लिए धन्यवाद। – dwj

3

विचार करें कि Boost Signals2 उपलब्ध हैं, और वे थ्रेड सुरक्षित हैं।

संबंधित मुद्दे