पायथन में GUIs का विकास: Pykint बनाम Tkinter [बंद]


94

यदि कोई पाइथन में यूजर इंटरफेस विकसित करना चाहता है, तो किसके लिए जाना चाहिए: TkInter या PyQt?

मैंने अभी TkInter के साथ शुरुआत की थी और मैं कुछ सरल UI को लेबल, बटन, टेक्स्ट बॉक्स इत्यादि जैसे प्राथमिक विजेट्स के साथ प्राप्त करने में सक्षम था, बस यह जानने के लिए उत्सुक था कि TkInter की तुलना में PyQt कितना अच्छा होगा?

चियर्स


3
इसके अलावा, ध्यान दें कि बस TkInter और PyQt के अलावा आपके लिए कुछ विकल्प उपलब्ध हैं। wxPython एक है कि तुरंत दिमाग में आता है, लेकिन वहाँ पर एक और पूरी सूची है wiki.python.org/moin/GuiProgramming से अधिक आम जीयूआई में सूचीबद्ध संकुल की एक छोटी सूची python.org/doc/faq/gui
es

जवाबों:


77

यदि आप कभी भी कुछ भी गंभीर विकसित कर रहे हैं तो PyQt, विशेष रूप से आपके द्वारा सीखी जाने वाली चीजों के साथ सीधे अन्य भाषाओं में Qt के साथ काम करने के लिए सीधे अनुवाद करेगा, और यदि Qt संभवत: सबसे अच्छा क्रॉस-प्लेटफ़ॉर्म इंटरफ़ेस टूलकिट उपलब्ध है।

केवल दो वास्तविक (संभावित) नुकसान हैं:

PyQt केवल GPL के तहत उपलब्ध है। इसका मतलब यह है कि यदि आप अपना कोड जारी करते हैं, तो उसे संगत लाइसेंस के तहत, नोकिया के जीपीएल अपवाद की शर्तों के तहत, या वाणिज्यिक लाइसेंस के तहत उपलब्ध होना चाहिए (जिसमें पैसा खर्च होता है)। यह Qt के विपरीत है, जो अब LGPL के तहत उपलब्ध है।

पायथन को पायथन इंस्टॉलेशन के साथ डिफ़ॉल्ट रूप से शामिल नहीं किया गया है। आप पुस्तकालय को स्वयं पैकेज करने जा रहे हैं। (Ars Technica के पास Windows और OS X के लिए एक अच्छा लेख है। )


5
ओपन सोर्स के लिए, PyQt GPL के लिए एक अपवाद देता है जो आपके द्वारा उपयोग किए जाने वाले लाइसेंस की सूची को निर्दिष्ट करता है। अपवाद का पूरा पाठ यहां पाया जा सकता है और एक प्रतिलिपि PyQt स्रोत पैकेज में शामिल है। riverbankcomputing.co.uk/software/pyqt/license doc.trolltech.com/4.4/license-gpl-exceptions.html
sunqiang

सही है, धन्यवाद। मैंने एक नोट जोड़ा।
सैम डेफेबिया-केन जू

16
नोकिया ने PySide नामक एक पुस्तकालय का निर्माण शुरू किया है जो PyQt के रूप में लगभग समान कार्यक्षमता प्रदान करता है, लेकिन LGPL के तहत। यह अभी * NIX आधारित सिस्टम पर ही उपलब्ध है। लेकिन आप अपने आयातों में "PySide" के साथ "PyQt4" को बहुत अधिक स्वैप कर सकते हैं और सब कुछ काम कर सकते हैं। pyside.org
जेम्स

नोकिया के GPL अपवाद के लिए लिंक मृत है।
स्टेवोइसाक

1
2019 तक, PyQt5 बाहर है, और PySide2 LGPL के तहत समान Qt बाइंडिंग के बहुमत का समर्थन करता है।
लाइटसीसी

40

PyQt अब हमारा मुख्य GUI टूलकिट है और विकास के 1 साल बाद मैं किसी और चीज़ पर वापस नहीं लौटना चाहता। यह स्थिर, परिपक्व, क्रॉस-प्लेटफॉर्म और पूरी तरह से देशी है। यहां तक ​​कि सिस्टम डायलॉग बॉक्स (उदाहरण के लिए फाइलें खोलने के लिए) आपके ऑपरेटिंग सिस्टम द्वारा उपयोग किए जाने वाले हैं।

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

मैंने इसे 2 अन्य डेवलपर्स के यहाँ पेश किया और उन्हें शिकायत करते नहीं सुना ...


10
एक चेतावनी: क्यूटी केवल मूल दिखता है। उपयोगकर्ता इंटरफ़ेस तत्व वास्तव में अनुकरणीय हैं (कम से कम मैक ओएस एक्स पर)। चित्रमय तत्वों का "महसूस" इस अनुकरण के कारण, कई बार कथित तौर पर अजीब होता है।
एरिक ओ लेबिगॉट

22

मैं सरल इंटरफ़ेस के साथ छोटे अनुप्रयोगों केtkinter लिए उपयोग कर रहा हूं । मुझे यह बहुत पसंद है, भले ही अच्छे WYSIWYG संपादक की कमी एक बड़े ऐप के लिए समस्या हो।

बड़े ऐप्स के लिए, PyQtएक बेहतर विकल्प हो सकता है। इसमें बहुत अच्छा स्क्रीन डिज़ाइनर है, लेकिन लाइसेंस की समस्या हो सकती है।

अंत में, wxPythonयह एक अच्छा विकल्प हो सकता है, क्योंकि इसमें ये कमियां नहीं हैं।


7
मैंने बिना किसी समस्या के tk के साथ बड़े व्यावसायिक अनुप्रयोग लिखे हैं। यह बहुत अच्छी तरह से तराजू। यह विशेष रूप से अच्छा नहीं है यदि आपके डेटासेट लाखों आइटम में चलते हैं, लेकिन कुछ ही लोग इस तरह के ऐप विकसित करते हैं।
ब्रायन ओकले

2
धन्यवाद ब्रायन प्रतिक्रिया के लिए। यह उत्तर बहुत समय पहले दिया गया था और मुझे अब टीके के साथ बेहतर अनुभव है और मुझे यह अधिक से अधिक पसंद है।
ल्यूक

मैंने अपना एनाउंसर अपडेट किया है। एक स्केलेबिलिटी इश्यू से अधिक देव टूल्स का एक पीबी
'13

8

PyQt वास्तव में सीखना आसान है और Qt के लिए डॉक्स भी PyQt के लिए काम करता है। .NET और Java में पोर्ट भी हैं। तो, यह परी क्रॉस प्लेटफॉर्म और क्रॉस लैंग्वेज है। इसके अलावा आप एरिक आईडीई में एकीकृत PyQt है ।

सीएसएस शैलियों का समर्थन भी वास्तव में शानदार है।

नया OpenSuSE इंस्टॉलर देखें कि आप इसके साथ क्या कर सकते हैं।


4

आप Tkinter का उपयोग करके विशाल GUI बना सकते हैं। यदि आप पाइक्जेन मॉड्यूल को आज़माना चाहते हैं तो यह JSON परिभाषाओं से टिंकर जीयूआई बनाने में मदद करता है: https://github.com/tmetsch/pytkgen


1

मैं PyQt का उपयोग करता हूं। यह क्रॉस-प्लेटफ़ॉर्म है, साथ काम करना आसान है, और विश्वसनीय है।

मैंने हल्के ढंग से TkInter का उपयोग किया है , और मैं PyQt से बेहतर TkInter बनाने वाले किसी भी बिंदु को नहीं देखता।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.