2012-02-26 19 views
6

में यूआई फ़ाइल में उपयोगकर्ता निर्मित विजेट जोड़ना क्यूटी निर्माता के क्यूटी डिजाइनर भाग में कई विजेट्स में निर्मित हैं। लेकिन मान लीजिए कि मैं उसी क्यूटी प्रोजेक्ट में बनाई गई कस्टम विगेट्स को विंडो की UI फ़ाइल में जोड़ना चाहता हूं। इन चरणों का पालन करके:क्यूटी निर्माता

  1. एक मुख्य विंडो के साथ एक नया क्यूटी जीयूआई आवेदन बनाएं, हम खिड़की ए फोन करता हूँ
  2. परियोजना के लिए एक नया विजेट जोड़ें, विजेट सिर्फ मानक UI घटक का उपयोग करता है, का कहना है कि बटन। हम इस विजेट बी
  3. फोन करता हूँ विजेट बी का एक उदाहरण खिड़की ए करने के लिए एक ही रास्ता है कि ऐसा करने के लिए जोड़े

अब, मुझे पता है, और वह यह है कि:

  1. खिड़की एक में संभव विजेट की सूची के कंटेनर अनुभाग से, एक खाली विजेट (या विजेट कंटेनर जोड़ें। हम इस विजेट सी
  2. यह (विजेट सी) को बढ़ावा देने के बी

विजेट हालांकि फोन करता हूँ,इसके साथ समस्या यह है कि क्यूटी निर्माता का डिजाइनर इसे एक सामान्य QWidget की तरह व्यवहार करता है। और इस तरह, आप इसे स्प्लिटर में जोड़ने जैसी चीजें नहीं कर सकते हैं, या विजेट के लिए विशिष्ट सिग्नल/स्लॉट कनेक्ट कर सकते हैं।

तो क्या qt निर्माता का उपयोग कर ui फ़ाइल में विंडो ए में विजेट बी जोड़ने के अन्य तरीके हैं? धन्यवाद।

+2

आप डिज़ाइनर के लिए कस्टम विजेट बना सकते हैं: http://developer.qt.nokia.com/doc/qt-4.8/designer-creating-custom-widgets.html – Lol4t0

+0

हम्म .. ऐसा लगता है कि मैंने इस प्रक्रिया का पालन किया है , जो भी इस परियोजना को संपादित करना चाहता है उसे प्लगइन को अलग से स्थापित करना होगा, हां? मैं अधिमानतः ऐसा करना चाहता हूं जहां प्लगइन स्थापित किए बिना परियोजना को स्वयं खोला जा सकता है, यदि यह संभव है। –

+0

@LeifAndersen इस परियोजना को खोलने के लिए प्लगइन की आवश्यकता नहीं होगी, बस नए विजेट को देखने और उससे संपर्क करने के लिए। आपकी परियोजना और टीम के आधार पर, प्लगइन के लिए एक केंद्रीय भंडार एक संभावना हो सकती है; यह हमारी कंपनी करता है। हालांकि, इनके अलावा मुझे कोई अन्य विकल्प नहीं है। –

उत्तर

1

मुझे आपके प्रश्न को अच्छी तरह समझना नहीं है इसलिए मैं गलत सवाल पूछ सकता हूं। क्या आप सुनिश्चित हैं कि आपका "बी" विजेट QDesignerCustomWidgetInterface का उप-वर्ग है? यह आपके विजेट/प्लगइन की पेशकश की सभी सामग्री का खुलासा करना चाहिए ...

अंतिम नोट: मेरे एक दोस्त ने आपके जैसे कस्टम विजेट को जोड़ने का प्रयास किया। और वर्णित प्रक्रिया के अंत में, जिसे Lol4t0 ने आपको बताया था, उसने आपको को संकलित प्लगइन के साथ एक ही कंपाइलर के साथ संकलित किया था जिसमें qtcreator/designer संकलित किया गया था। ऐसा इसलिए होता है क्योंकि हम जानते हैं कि सी ++ एबीआई की स्थिरता (यानी सी भाषा के बजाय) नहीं रखता है: नाम हैंडलिंग कंपाइलर से कंपाइलर में बदल सकता है, रजिस्टरों में डेटा कैसे लोड किया जा सकता है ... और इसी तरह। मेरे दोस्त ने mingw के साथ प्लगइन संकलित करने की कोशिश की, लेकिन उन्होंने पाया कि qtcreator दृश्य स्टूडियो संकलक के साथ संकलित किया गया था। इसलिए यदि आप विंडोज़ पर अपनी प्लगइन को तैनात करना चाहते हैं या आप विजुअल स्टूडियो के साथ अपनी प्लगइन संकलित करना चाहते हैं, या आपको स्क्रैच से qtcreator/designer को संकलित करना होगा।

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