2009-08-28 12 views
5

के लिए क्यूटी यूआई मैंने पहले से ही एक सी ++ प्रोग्राम लिखा है और मैं इसके लिए एक जीयूआई लिखना चाहता हूं। मुझे एहसास है कि क्यूटी एक अद्भुत उपकरण है, हालांकि, क्यूटी के पास अपनी कक्षाएं हैं, जो मुझे काफी उलझन में डालती हैं। उदाहरण: स्ट्रिंग के बजाए, क्यूटी में क्यूस्ट्रिंग नामक एक कक्षा है ..मौजूदा सी ++ प्रोजेक्ट

मुझे आश्चर्य है कि क्या मैं सी ++ कोड और क्यूटी कोड को C++ में मिश्रित कर सकता हूं?

+0

जेएफवाईआई इसे क्यूटी के रूप में लिखा गया है, क्यूटी नहीं। –

+0

धन्यवाद। मैंने इसे वापस बदल दिया ~ – Lily

उत्तर

7

हां आप क्यूटी और एसटीएल को बहुत आसानी से इंटरमीक्स कर सकते हैं।

जीयूआई QString रों लगता है लेकिन चुपचाप इन प्रपत्र std::string या char*, QStrings क्यूटी से लौटे toStdString() या toAscii() साथ परिवर्तित किया जा सकता पैदा करेगा।

क्यूटी में संग्रह कक्षाओं का एक सेट शामिल है लेकिन आपको उनका उपयोग करने की आवश्यकता नहीं है।

क्यूटी आधुनिक सी ++ की तरह दिखने का अच्छा काम करता है, सिग्नल और स्लॉट इवेंट मैकेनिज्म को संभालने के लिए कुछ 'अतिरिक्त' हैं लेकिन ये कोड के मुकाबले निर्माण पर्यावरण के लिए अधिक जटिल हैं।

संपादित करें: धन्यवाद बिल

+2

आप क्यूस्ट्रिंग :: toStdString()/QString :: toStdWString() :) – Bill

+0

क्यूस्ट्रिंग का उपयोग भी कर सकते हैं QString एक std :: स्ट्रिंग से पूरी तरह से रचनात्मक नहीं है। ऐसा कोई कन्स्ट्रक्टर नहीं है। 'त्रुटि:' std :: string 'से रूपांतरण गैर-स्केलर प्रकार' QString 'से अनुरोध किया गया है, हालांकि, आप' QString x = myStdString.c_str(); ' – leemes

0

संक्षेप में, हाँ आप कर सकते हैं! उदाहरण के लिए, एक क्यूस्ट्रिंग अनिवार्य रूप से एक स्ट्रिंग है और इसमें एक एएससीआईआई() विधि है, ताकि आप आसानी से अपनी परियोजनाओं के लिए क्यूटी का उपयोग कर सकें। यद्यपि आप दृश्य स्टूडियो में क्यूटी को एकीकृत करने में कुछ समस्याएं चला सकते हैं (मान लीजिए कि आप इसका उपयोग कर रहे हैं), आप सी ++ कोड और क्यूटी कोड (जो सी ++ में है) मिश्रण करने में सक्षम होंगे

0

हाँ! क्यूटी कुछ ऐसा है जो आप अपने सी ++ कोड में उपयोग कर सकते हैं। क्यूटी मुख्य रूप से जीयूआई के लिए है लेकिन यह सॉकेट, कंटेनर, नेटवर्क, के लिए अच्छी कक्षाएं है ... आप एसटीएल और अन्य सामान्य कक्षाओं या क्यूटी आपको प्रदान करने के लिए स्वतंत्र हैं। सबसे बड़ा मुद्दा यह है कि यदि आप मुख्य संकलन से पहले अपने कोड में क्यूटी का उपयोग करते हैं तो आपको इसे कंपाइलर के लिए तैयार करने के लिए मेटा संकलन करना चाहिए। एक बात आपको ध्यान देनी चाहिए कि क्यूटी मानक नहीं है इसका मतलब है कि यह विंडोज, लिनक्स और मैक ओएस का समर्थन करता है, यह अन्य प्लेटफार्मों पर उपयोग योग्य नहीं होगा।

0

इनका उपयोग एक साथ किया जा सकता है।

सी ++ का लंबा इतिहास है और एसटीएल कार्यान्वयन और समर्थन भाषा के साथ विकसित हुआ है। मुझे लगता है कि पूर्व ट्रॉल्टेक टीम ने फैसला किया कि क्यूटी लाइब्रेरी पर निर्भर करने के लिए एसटीएल कार्यान्वयन की गुणवत्ता और उपलब्धता पर उनके पास पर्याप्त नियंत्रण नहीं था। नतीजा यह है कि क्यूटी का अपना क्यूटीएल, क्यूटी एल्गोरिदम हेडर और क्यूस्ट्रिंग है।

  • सबसे कंटेनर एसटीएल वालों के लिए एक समान अंतरफलक है (उदाहरण के लिए: इटरेटर का उपयोग, push_back(), खाली(), आदि)
  • वे देखभाल उन्हें एसटीएल के साथ संगत बनाने के लिए ले लिया है

  • क्यूटी कंटेनरों को/परिवर्तित किया जा सकता एसटीएल कंटेनरों से (जैसे: QVector :: toStdVector, QList :: fromStdList)
  • क्यूटी कंटेनरों एसटीएल एल्गोरिदम के साथ इस्तेमाल किया जा सकता
  • QString को/परिवर्तित किया जा सकता एसटीडी से :: स्ट्रिंग और std :: wstring toStd (डब्ल्यू) स्ट्रिंग/सेएसटी (डब्ल्यू) स्ट्रिंग

व्यक्तिगत रूप से, मुझे std :: स्ट्रिंग से अधिक QString पसंद है, यह उपयोग करना आसान और अधिक शक्तिशाली है।

0

हाँ आप कर सकते हैं।

मैंने वास्तव में सी आधारित कार्यों के एक सेट के लिए एक क्यूटी-जीयूआई-रैपर बनाया। क्यूटी एकीकरण के साथ कोई समस्या नहीं, केवल निम्न स्तर सी (जो स्मृति को लीक करता है ...)।

यहाँ देखें: http://code.google.com/p/qhocr/

1

मैं अभ्यस्त एक साथ मिश्रण एसटीडी C++ कोड और क्यूटी कोड सलाह देते हैं।

मान लें कि, आपका सी ++ कोड तर्क है तो क्यूटी कोड, केवल जीयूआई के लिए होना चाहिए। एक एमवीसी/एमवीपी पैटर्न का उपयोग या इसी तरह, अपने तर्क और यूआई को अलग करें।

इस प्रकार, भविष्य में यूआई का उपयोग किए बिना/आपके कोड को चलाने में सक्षम होना आसान होगा।

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