KDDockWidgets, QDockWidget के लिए एक उन्नत कार्यान्वयन ढांचा

केडीक्यूडॉकविजेट

समूह केडीएबी क्यूटी, सी++ और ओपनजीएल अनुप्रयोगों के लिए एक सॉफ्टवेयर परामर्शदाता है इसके अतिरिक्त, विभिन्न प्लेटफार्मों (डेस्कटॉप, एकीकृत और मोबाइल) के लिए शुरुआत से क्यूटी अनुप्रयोगों को विकसित करने के लिए ट्यूटोरियल प्रदान करता है और सभी लोकप्रिय फ्रेमवर्क को Qt में पोर्ट करने पर।

वर्षों से, KDAB ने QDockWidget के विकास में योगदान और वित्त पोषण किया है. लेकिन क्योंकि QdockWidget का उपयोग करके परिवर्तनों और बगफिक्स को लागू करने में कई दिन लग गए, यह एक अच्छा विकल्प नहीं निकला, इस प्रकार KDDockWidgets को जन्म दिया गया।

KDDockWidgets है QDockWidgets के लिए एक उन्नत डॉकिंग ढाँचा, जो उन सुविधाओं को जोड़कर इसके उपयोग का विस्तार करता है जिनका QDockWidgets समर्थन नहीं करता है।

QdockWidget मूल रूप से GUI कोड को स्टेटफुल लॉजिक के साथ जोड़ता है, जैसा नई सुविधाओं के साथ आगे बढ़ना बहुत कठिन हो जाता है, जो विभिन्न प्लेटफार्मों के भीतर इसके कार्यान्वयन में बड़ी जटिलता पैदा करता है। चूँकि यह कई ग्राफिकल यूजर इंटरफेस का एक बुनियादी घटक है, यह आपको संपूर्ण विंडो तत्वों (टूलबार, विजेट समूह, आदि) को जहां चाहें वहां ले जाने की अनुमति देता है।

हालांकि, केडीएबी ने तर्क दिया कि QDockWidgets कोड रखरखाव बहुत आसान नहीं है, तो वह टिप्पणी करते हैं कि:

KDDockWidgets का जन्म दो परियोजनाओं पर काम करने के बाद विवेक को बनाए रखने की मेरी आवश्यकता से हुआ था, जिनके लिए व्यापक अनुकूलन की आवश्यकता थी। एक जहां हमने सीधे अपस्ट्रीम पर काम करने की कोशिश की लेकिन प्रतिगमन दर बहुत अधिक हो गई।

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

मुख्य समस्या इसका डिज़ाइन है, काफी अखंड लेकिन विन्यास योग्य (हम उपयोगकर्ता के लिए उपलब्ध सुविधाओं को चुन सकते हैं, भले ही कुछ लोग एनिमेशन के लिए ऐसा करते हों), कोड स्पेगेटी (तर्क और घटक स्थिति का मज़ाकिया मिश्रण)। इसलिए, कोई भी परिवर्तन बड़ी संख्या में प्रतिगमन पैदा कर सकता है।

इसीलिए KDAB ने KDDockWidgets बनाने का निर्णय लिया है, जिसके साथ यह विशेष परिस्थितियों में इसके अनुकूलन की सुविधा प्रदान करते हुए, QDockWidgets डिज़ाइन को बहुत सरल बनाना चाहता है।

KDDockWidgets निम्नलिखित कार्य प्रदान करता है:

  • फ़्लोटिंग विंडो में विजेट्स को डॉक करने और उस समूह को मुख्य विंडो में डॉक करने में सक्षम होना
  • केवल मुख्य विंडो ही नहीं, बल्कि किसी भी विंडो से डॉकिंग
  • मुख्य विंडो के केंद्र में डॉक करें
  • मुख्य विंडो के अंदर केंद्रीय विजेट में वियोज्य टैब के लिए समर्थन
  • डॉकिंग क्षेत्र में टैब बार से टैब को अलग करने में सक्षम होना
  • विभिन्न घटकों को मिलाकर विभिन्न टैब को संयोजित करने की क्षमता।
  • आंतरिक सहायता विजेट प्रदर्शित करें ताकि उपयोगकर्ता उन्हें अनुकूलित कर सके या अपना स्वयं का प्रदान कर सके।
  • घटक समूह स्वतंत्र रूप से बाहरी विंडो (जिसमें केवल यह घटक समूह शामिल है) से मुख्य विंडो (क्यूटी 5.10 में आंशिक रूप से कार्यान्वित एक सुविधा) पर स्विच कर सकते हैं।
  • टैब विजेट अनुकूलित करें
  • शीर्षक पट्टियों को अनुकूलित करें
  • खिड़की के फ्रेम को अनुकूलित करें
  • इस बात पर प्रकाश डालने के अलावा कि मुख्य परिवर्तन जीयूआई से तत्वों को खत्म करने के लिए सटीक संकेतकों को जोड़ना है, इस तथ्य के अलावा कि केंद्रीय विजेट की धारणा गायब हो जाती है, क्योंकि यह अब एक विशिष्ट तत्व नहीं है।

नया संगठन स्पष्ट रूप से तर्क को ग्राफ़िकल इंटरफ़ेस से अलग करता है, ताकि अंतर्निहित रनटाइम हो Qt क्विक इंटरफेस के लिए आसानी से पुन: उपयोग किया जा सकता है (जो अंततः अपेक्षित है)। इससे इंटरफ़ेस को अनुकूलित करना भी आसान हो जाता है, उपयोगकर्ता इंटरफ़ेस के किसी भी भाग के लिए अपने स्वयं के विजेट प्रदान कर सकता है।

इसके अलावा, KDDockWidgets का उद्देश्य एक ढांचा है, ताकि आप आसानी से इंटरफेस को ओवरराइड कर सकें कस्टम व्यवहार और उपस्थिति प्रदान करने के लिए। KDDockWidgets एक खुला स्रोत ढांचा है, जिसे GPLv2 और GPLv3 लाइसेंस के तहत लाइसेंस प्राप्त है।

KDDockWidgets कोड के साथ-साथ इसका डेमो भी उपलब्ध है निम्नलिखित लिंक में


पहली टिप्पणी करने के लिए

अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।