नोट : इस उत्तर में, "क्यूटी विजेट" एक क्यूटी विजेट एप्लिकेशन को संदर्भित करता है, एक नया क्यूटी एप्लिकेशन बनाते समय चयन करने योग्य।
यह प्रश्न पहली बार पोस्ट किए जाने के सात साल बाद का है ... लेकिन यहां मेरा " उद्देश्य " तब से किसी भी घटनाक्रम को बेअसर करने के लिए दो सेंट है।
एक रिफ्रेशर
भाषा: हिन्दी
Qt क्विक प्रोजेक्ट्स QML और जावास्क्रिप्ट का उपयोग करते हैं ।
Qt विजेट प्रोजेक्ट C ++ कोड का उपयोग करते हैं। (PyQt और PySide, Qt के लिए पायथन बाइंडिंग, Python का उपयोग करता है।)
प्रदर्शन और कोडिंग
जैसे, क्यूटी क्विक की तुलना में क्यूटी विजेट को निम्न-स्तर माना जा सकता है। लेकिन इसका मतलब है कि लंबे समय में, एक क्यूटी विजेट परियोजना तेजी से चलेगी और बेहतर प्रदर्शन होगा। निम्न-स्तर होना अच्छा हो सकता है, क्योंकि Qt विजेट मूल API ( QtCore मॉड्यूल , Qt स्टाइल शीट्स इत्यादि) से अधिक उजागर होता है । उस ने कहा, यह अक्सर डेस्कटॉप विकास के लिए उपयोग किया जाता है।
Qt त्वरित मोबाइल विकास को अधिक पूरा करता है (हालाँकि इसे अभी भी डेस्कटॉप विकास में उपयोग किया जा सकता है)। यह करने के लिए तैयार उपयोग है पॉपअप , एनिमेशन , टैब और लेआउट, flickables , दराज , और हमेशा की तरह नियंत्रण; मोबाइल के विकास में सभी सर्वव्यापी।
यूआई डिजाइन
दोनों में ऐसी ui
फाइलें हैं जो QtDesigner के साथ काम करती हैं, लेआउट्स सेट करने और इंटरफेस बनाने के लिए एक उच्च-स्तरीय दृश्य प्रदान करती हैं। (क्यूटी क्विक में, एक्सटेंशन हैं .ui.qml
। क्यूटी विजेट्स में, वे हैं .ui
।) .ui
फाइलें अनिवार्य नहीं हैं और न ही आवश्यक हैं: आपके पास प्रोग्राम का उपयोग करने का विकल्प और लेआउट प्रोग्राम हैं जो QML / JS या C ++ / Python का उपयोग करते हैं।
सीख रहा हूँ
यदि आप प्रोग्रामिंग में पूरी तरह से नए हैं, तो मेरा सुझाव है कि पहले क्यूटी क्विक पर एक नज़र डालें। व्यक्तिगत रूप से, मुझे लगता है कि क्यूटी क्विक में एक जेंटलर लर्निंग कर्व है और परियोजनाओं के असंख्य को पूरा करने के लिए काम करना आसान है। इसे एक कारण के लिए "क्यूटी क्विक " कहा जाता है । (क्यूटी विजेट पर मत देखो, हालांकि, उनके पास कुछ अच्छे मॉड्यूल हैं जो QtQuick से आगे हैं।)
हालांकि, अगर आप पहले सी ++ या अजगर के साथ प्रोग्रामिंग किया गया है, मैं पहले क्यूटी विजेट पर एक नज़र लेने के सुझाव है, उनके लिए इस्तेमाल किया पाने के लिए संकेतों और स्लॉट तंत्र और मॉड्यूल है कि आप (जैसे रुचि हो सकती है sql
, network
, gui
) डिजाइन प्रोग्रामिंग के साथ (जैसे मॉडल / डेटा प्रदर्शित करने के लिए प्रोग्रामिंग देखें )।
विशेष रूप से सी ++ के साथ, अधिकांश गैर-क्यूटी पुस्तकालय जो कि घटना-हैंडलिंग उपयोग- while
लूप करते हैं, यह क्यूटी के साथ ऐसा नहीं है। वे सिग्नल और स्लॉट का उपयोग करते हैं ।
अंत में, भले ही आप मुख्य रूप से क्यूटी विजेट का उपयोग कर रहे हों, आप क्यूटी क्विक को देखना चाह सकते हैं क्योंकि यह काम करने के लिए एक उच्च-स्तरीय घोषणात्मक भाषा प्रदान करता है और आपको चीजों को अधिक तेज़ी से सेट करने की अनुमति देता है। (विशेषकर मोबाइल विकास के लिए।)
Qt एक फोरम के साथ Qt क्विक और Qt विजेट दोनों परियोजनाओं के लिए बहुतायत में उदाहरण प्रदान करता है । आपको लंबे समय में मदद पाने के बारे में चिंता नहीं करनी चाहिए। (StackOverflow मत भूलना!)
क्यूटी क्विक + क्यूटी विजेट
अब तक हम उनके साथ अलग-अलग संस्थाओं की तरह व्यवहार कर रहे हैं। लेकिन QML को C ++ में एकीकृत करना संभव है । यह आपको क्यूटी विजेट, सी ++, और अन्य मॉड्यूल का लाभ उठाने की अनुमति देता है। उदाहरण के लिए, QtQuick एक प्रदान करता है, TreeView
लेकिन नहीं TreeModel
, जो C ++ से QML में पंजीकृत होना चाहिए। अक्सर चिंता की पिच का अलगाव होता है , जहां Qt क्रमशः UI और तर्क में प्रोग्राम को QML और C ++ में अलग करने की सलाह देता है।
यह भी काम में आता है, अगर कहें, तो आपको तीव्र एसक्यूएल प्रश्नों, एल्गोरिदम या अतुल्यकालिक http / xml अनुरोधों के लिए बैकएंड की आवश्यकता है । कि शांत नहीं है? QML / JS फ्रंटएंड प्लस C ++ बैकएंड। फुलस्टैक Qt'er। :-)
(क्या मैंने कोशिश नहीं की है, एक पायथन बैकएंड है। मैंने अभी तक PyQt को नहीं छुआ है ...)