GTK और QT में क्या अंतर है?


29

कृपया मेरे साथ सहन करें क्योंकि मैं लिनक्स के लिए एक नवागंतुक हूं। मैं एक मैक पर कई वर्षों के लिए वास्तविक कार्यक्रम में GUI कार्यक्रम लिख रहा हूँ । मैं पायथन सीखने की कोशिश कर रहा हूं और मैं लिनक्स के लिए जीयूआई एप्लिकेशन लिखना चाहता हूं (मुख्य रूप से उबंटू और मिंट क्योंकि वे मेरे पास पहुंच वाले डिस्ट्रो हैं और वे सबसे लोकप्रिय लगते हैं)। मेरे पास मूल रूप से तीन प्रश्न हैं:

  1. क्या जीटीके और क्यूटी के बीच कोई महत्वपूर्ण अंतर हैं
  2. मैं के साथ toyed है quicklyऔर GladeUbuntu पर लेकिन मैं समझता हूँ कि वे जीटीके 2 पर आधारित होते हैं और यह अब अप्रचलित है। क्या वो सही है?
  3. क्या कोई ऑल-इन-वन संपादक हैं जो मुझे एक GUI डिज़ाइन करने देते हैं और फिर इसमें पायथन कोड जोड़ते हैं? (उदाहरण के लिए, संपादक में एक विंडो में एक बटन जोड़ें, बटन पर डबल क्लिक करें और फिर बटन दबाए जाने पर निष्पादित करने वाला पायथन कोड जोड़ें)

क्षमा करें यदि ये वास्तव में गूंगे प्रश्न हैं, लेकिन मैं शुरू से ही 'सही' उपकरण सीखना शुरू करना चाहता हूं।


2
आपके सवालों के जवाब देने के लिए मेरे पास अभी समय नहीं है, लेकिन मैं कुछ स्पष्ट कर सकता हूं। ग्लेड एक पुस्तकालय, यूआई परिभाषा फ़ाइल के लिए एक प्रारूप और उन .glade फ़ाइलों को बनाने के लिए एक अनुप्रयोग हुआ करता था। अब हम GtkBuilder का उपयोग ग्लेड प्रारूप का उपयोग करने के लिए करते हैं और जो GTK में बनाया गया है। ग्लेड एप्लिकेशन को GtkBuilder (या बस अलग लेआउट का परीक्षण करने के लिए) के लिए .ui फाइलें बनाने के लिए एक महान उपकरण के रूप में रहता है, और ग्लेड 3.x निश्चित रूप से Gtk3 करता है - हालांकि इस समय सब कुछ नहीं है।
डायलन मैक्कल

यह बहुत मददगार है। इसलिए यदि मैं अपने टूलकिट के रूप में जीटीके का उपयोग करने का निर्णय लेता हूं तो मैं अपने पायथन कोड और यूआई डिजाइन को जोड़ने के लिए लेआउट और अन्य उपकरण को डिजाइन करने के लिए ग्लेड का उपयोग करूंगा - सही?
नुत्रिनो

हां, और यह टूल GTK का हिस्सा है, इसलिए इसे यहाँ पर प्रलेखित किया गया है: developer.gnome.org/gtk3/3.1/GtkBuilder.html मैं आपको C दस्तावेज़ से लिंक कर रहा हूँ क्योंकि यह बहुत विस्तृत है, और जब आप PyGObject के लिए आते हैं केवल वास्तविक अंतर वाक्यविन्यास होगा। पायथन में, नाम और सामान कुछ इस तरह दिखाई देंगे: valadoc.org/gtk+-3.0/Gtk.Builder.html
डायलन

जवाबों:


12

मैं आपके सवालों का जवाब देने की कोशिश करूंगा, बिना पागल निर्देशों के।

  1. वे काफी भिन्न हैं, भले ही वे दोनों विजेट लिबास हैं। नियमित जीटीके + सी पर आधारित है, और क्यूटी सी ++ पर आधारित है। हालाँकि बाइंडिंग लगभग हर प्रोग्रामिंग लैंग्वेज के लिए मौजूद है।

  2. आप GTK2 के बारे में काफी हद तक सही हैं, हालांकि बहुत सारे GTK2 एप्लिकेशन हैं। मुझे उम्मीद है कि GTK2 कुछ समय के लिए उपयोग में रहेगा, जैसा कि GTK1 था। जब धक्का को धक्का लगता है, तो GTK2 को हटा दिया जाता है, और यदि आप नए सिरे से शुरू कर रहे हैं GTK3।

  3. रिमेबर जीटीके, और क्यूटी, केवल विजेट टूलकिट हैं। उदाहरण के लिए ... Gnome अनुप्रयोगों, GTK और भी Gnome-Libs का उपयोग करें। यदि आप ऐसा चाहते हैं, तो वेल पर एक नज़र डालें। यह सरल माना जाता है, वेला स्रोत-से-स्रोत को सीधे सी पर संकलित करता है, और कई प्रोग्रामिंग भाषाओं के लिए पूर्ण बाइंडिंग है। आप अंजुता को भी देखना चाह सकते हैं, बस सुनिश्चित करें कि आपके पास नए gtk3 संस्करण हैं। स्पष्ट रूप से PyGTK केवल जीटीके 2 का समर्थन करता है, वर्तमान में मैंने आखिरी बार जाँच की थी। यदि आप सभी लिनक्स डीई लिबास से बचना चाहते हैं, तो मैं आपको क्यूटी को देखने का सुझाव दूंगा। सादा क्यूटी केडीई अनुप्रयोगों से अलग है, जिसमें केडीई काम शामिल हैं। क्यूटी को बहुत क्रॉस-प्लेटफ़ॉर्म माना जाता है, जो कि यदि आप नॉन * निक्स के लिए संकलन करना चाहते हैं, तो अच्छा है। यदि आप क्यूटी + पायथन के साथ शुरुआत करना चाहते हैं, तो PySide (LGPL) या PyQT (GPL) को देखें। Qt में कुछ अच्छे GUI बिल्डरों जैसे qt क्रिएटर और qt-डिज़ाइनर हैं।


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

Qt सिर्फ एक विजेट टूलकिट से बहुत अधिक है। यह एसटीएल और बूस्ट के बड़े हिस्से की नकल करते हुए एक संपूर्ण रूपरेखा है।
स्कूटल

@scott, मैं क्यूटी को सीमित करने की कोशिश नहीं कर रहा था। जबकि क्यूटी सिर्फ विगेट्स से अधिक सक्षम है, यह उस संदर्भ में संभावित समाधान का हिस्सा बन गया है।
जेएम बेकर

@Nootrino: आपको FLOSS की दुनिया में याद रखना होगा, अक्सर एक से अधिक स्थापित समाधान होते हैं। कई लोगों ने एक या दूसरे को चुना है, यह उनके सी बनाम, सी ++ पर आधारित है। बेशक, लाइसेंस ने अतीत में एक बड़ी भूमिका निभाई थी। भले ही कई भाषाओं में अन्य ढांचे मौजूद हों, आप आमतौर पर एक विधि से अधिक सहमत होते हैं।
जेएम बेकर

@ न्यूट्रीनो: मुझे खुशी है कि मैं वास्तव में मदद करने में सक्षम था!
जेएम बेकर

5

जीटीके और क्यूटी ओपन-सोर्स क्रॉस-प्लेटफॉर्म यूजर इंटरफेस टूलकिट और डेवलपमेंट फ्रेमवर्क हैं। ये लिनक्स के लिए उपयोग में आने वाले दो सबसे लोकप्रिय फ्रेमवर्क हैं क्योंकि वे ओपन-सोर्स हैं और डेवलपर्स को ग्राफिकल यूजर इंटरफेस डिजाइन करने के लिए एक शक्तिशाली टूलकिट देते हैं। GTK का उपयोग GNOME, LXDE और Xfce डेस्कटॉप वातावरण के लिए मानक टूलकिट के रूप में किया जाता है जबकि KDE KDE के लिए उपयोग किया जाता है।

यदि आप सी में कोड करते हैं, तो स्पष्ट रूप से जीटीके + के लिए जाएं

यदि आप C ++ में कोड करते हैं, तो Qt के लिए जाएं, अन्यथा आप Gtkmm (GTK + पर एक C ++ आवरण) ned करेंगे

यदि आप पायथन में कोड करते हैं, तो GTK + और Qt दोनों के पास भाषा के लिए बाइंडिंग है: PyGtk, PyQt और PySide (स्वयं Nokia द्वारा लॉन्च किया गया) देखें।


यदि आप पायथन का उपयोग कर रहे हैं, तो PyGTK को हटा दिया गया है। नई परियोजनाओं के लिए आप PyGObject (Ubuntu के भंडार में python-gobject) का उपयोग करके बहुत बेहतर होंगे: live.gnome.org/PyGObject PyGObject आपको किसी भी अतिरिक्त परतों के बिना पायथन के माध्यम से GLB (जैसे GTK) से निर्मित किसी भी लाइब्रेरी से जुड़ने की सुविधा देता है। आपको PyGTK की तरह बहुत कुछ मिलता है, लेकिन यह इसके बारे में काफी अलग है। और, ज़ाहिर है, पायथन के माध्यम से GTG3 से बात करने का एकमात्र तरीका PyGObject है।
डायलन मैक्कल

-2

Qt का उपयोग मुख्य रूप से KDE में और GNK + GNOME में किया जाता है। इसलिए यदि आप GNOME के ​​लिए विकास करना चाहते हैं, तो GTK + पर विचार करें क्योंकि GTK + पुस्तकालयों के लिए आवश्यक निर्भरता पहले से ही GNOME सिस्टम पर स्थापित होनी चाहिए; अंतिम उपयोगकर्ता को उन्हें स्थापित करने की आवश्यकता नहीं होगी। जीटीके + विकास को ग्लेड इंटरफेस डिज़ाइनर नामक उपकरण से भी लाभ मिलता है ; यदि आप चाहें, तो आप अपने उपयोगकर्ता इंटरफ़ेस बनाने के लिए इसका उपयोग कर सकते हैं।


5
क्यूटी एक क्रॉस प्लेटफ़ॉर्म टूलकिट है जिसका उपयोग केवल केडीई में नहीं किया जाता है, और इसलिए जीटीके है। और कृपया "txt lik dis" ...
Uri Herrera
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.