क्या पायथन जीयूआई ऐप विकसित करने के लिए कोई एक मानक ढांचा है।


20

पायथन का उपयोग करके GUI एप्लिकेशन लिखने के लिए बहुत सारे ढांचे हैं। लेकिन क्या कोई एक प्रमुख मानक ढांचा है? उदाहरण के लिए हमारे पास Visual Studio पर .NET / C # का एक बंडल है।

मैं अन्य दृष्टिकोणों में भी सोच रहा हूं। भविष्य में अगर मैं पायथन प्रोग्रामर जॉब के लिए इंटरव्यू दूं, तो कौन सा GUI फ्रेमवर्क माना जाएगा?

मुझे आश्चर्य है, कोई आईडीई नहीं है जो जीयूआई और पायथन भाषा को एकीकृत करता है। स्वाद की पसंद अच्छी है लेकिन अधिक पसंद एक विकर्षण बन जाती है।


नहीं, कोई "मानक" नहीं है। .NET को मानकीकृत नहीं किया गया है। ऐसे मानक निकाय नहीं हैं जिन्होंने .NET के लिए एक मानक लिखा है । C #: ecma-international.org/publications/standards/Ecma-334.htm के लिए एक मानक है । शायद "मानक" का मतलब क्या नहीं है?
S.Lott

@ S.Lott: उस भ्रामक शब्द के लिए क्षमा करें। मेरा मतलब कुछ अलग था। .NET एप्लिकेशन के लिए, विजुअल स्टूडियो सबसे अच्छा ऑल-आई-वन टूल है जिसमें GUI बिल्डर और अन्य चीजें शामिल हैं। शायद ही कभी लोग वीएस.नेट के विकल्प तलाशते हैं। मेरा मतलब ऐसे ही कार्यकाल में था। कोई भी पाइथन आईडीई जहां संपूर्ण ऑल-इन-वन समाधान की खोज समाप्त होती है।
आरपीके

क्या आप आईडीई (जैसे विजुअल स्टूडियो) के बारे में पूछ रहे हैं? यदि ऐसा है, तो प्रश्न में "फ्रेमवर्क" गलत शब्द है। कृपया स्पष्ट करें कि आप क्या मांग रहे हैं।
एस.लॉट S

@ S.Lott: नहीं, मैं विजुअल स्टूडियो के बारे में नहीं पूछ रहा हूं। मुझे स्पष्ट करें। उदाहरण के लिए, ASP.NET लें। यह एक ढांचा है लेकिन यह विजुअल स्टूडियो आईडीई में बहुत अच्छी तरह से एकीकृत होता है। आपके पास केंद्र तालिका पर सभी उपकरण उपलब्ध हैं। क्या पायथन के लिए कुछ है?
RPK

विजुअल स्टूडियो एक IDE == एक ही स्थान पर विकास के सभी उपकरण हैं। "मैं विज़ुअल स्टूडियो के बारे में नहीं पूछ रहा हूं" "आपके पास केंद्र तालिका पर सभी उपकरण उपलब्ध हैं, क्या इसके विपरीत है। क्या पायथन के लिए कुछ है?"। या तो आप आईडीई (विज़ुअल स्टूडियो के पायथन संस्करण) के बारे में पूछ रहे हैं या आप स्वयं रूपरेखा के बारे में पूछ रहे हैं। या, शायद आप दोनों के बारे में पूछ रहे हैं। यह पता लगाना बहुत मुश्किल है कि सवाल क्या है। कृपया अद्यतन बहुत स्पष्ट रूप से आप क्या चाहते हैं राज्य के लिए सवाल।
एस.लॉट

जवाबों:


12

आप Python में Win32 API GUI ऐप्स लिख सकते हैं, अगर आपको वह सभी बॉयलरप्लेट कोड लिखना पसंद है: PyWin32 प्रोजेक्ट

व्यक्तिगत रूप से, मुझे wxPython पसंद है । यह क्रॉस-प्लेटफ़ॉर्म (पूरी तरह से लिनक्स और विंडोज दोनों पर समर्थित है) और काफी समय से आसपास है ... सभ्य आधार, और बहुत सारे प्रलेखन / उदाहरण कोड। यदि आप इसका उपयोग करना चाहते हैं, तो BoaConstructor पर एक नज़र डालें । यह wxPython के लिए IDE है (या शायद बेहतर कहा गया है, wxPython में और उसके लिए लिखी गई IDE)। यह एकमात्र रेड आईडी है जो विशेष रूप से पायथन के लिए है जो मैं भर में आया हूं, यहां तक ​​कि उल्लेख के लायक है, क्यूटी यूआई संपादक को बचाएं (क्यूटी का यूआई संपादक सी ++ और पायक्यूटी दोनों के लिए उपयोग करने योग्य है)।

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

pyGTK, जो पहले ही उल्लेख किया गया है, एक और अच्छा विकल्प होगा। यह, भी, क्रॉस-प्लेटफ़ॉर्म है, हालांकि मुझे विंडोज पर जीटीके विकास के साथ कोई व्यक्तिगत अनुभव नहीं है। PyQT एक बेहतर विकल्प होगा, IMO - मुझे लगता है कि GUI Qt लाइब्रेरी के साथ बनाया गया है जो दोनों GTK के साथ बने लुक और फंक्शन से बेहतर है। मुझे Qt के सिग्नल / स्लॉट इवेंट मेकेनिज़्म के साथ काम करने में आसानी होती है। YMMV।

पायथन जीयूआई विकास के लिए वास्तव में कोई मानक नहीं है, कम से कम ऐसा नहीं है जो मैंने देखा है, लेकिन मेरे साथी पायथन डेवलपर्स ने जो मैंने वर्षों से काम किया है, उन्होंने मुझे किसी भी अन्य की तुलना में wxPython और PyQT का सुझाव दिया है उपकरणकिटें। मुझे यकीन नहीं है कि ईमानदार होने के लिए पायथन जीयूआई विकास पदों की कोई पर्याप्त संख्या है। वर्षों से मैंने जो पायथन विकास किया है, उसमें से अधिकांश सर्वर-साइड है, लेकिन यह कहना नहीं है कि विभिन्न व्यवसाय नहीं हैं जो अब अपने जीयूआई ऐप के लिए खुले स्रोत मार्ग पर जाना चाहते हैं।


Tkinter apps को काफी स्वीकार्य दिखने के लिए बनाया जा सकता है, अक्सर देशी ऐप्स से लगभग अप्रभेद्य, यदि आप बस इसे करने के लिए समय लेते हैं। मैं सहमत हूँ, हालांकि, कि wxPython बिना किसी ट्वीकिंग के साथ बेहतर दिखता है। व्यक्तिगत रूप से मैं अभी भी टिंकर को पसंद करता हूं क्योंकि यह ज्यादातर लोगों के लिए काफी अच्छा लगता है, और मेरी उत्पादकता wxPython से अधिक है।
ब्रायन ओकले

यदि आप एक l10n / i18n एप्लिकेशन को विकसित करने की योजना बना रहे हैं तो Tk (Tkinter) पूर्ण यूनिकोड (उदा: स्क्रिप्ट को आकार देने) का समर्थन नहीं करता है।
user.dz

12

टीके मानक हुआ करता था, लेकिन यह यकीनन सरलीकृत और बदसूरत है। फिर क्यूटी काफी लोकप्रिय हो गया। Gtk भी संभव है, और यह लिनक्स-ईश प्लेटफार्मों पर पसंदीदा को कवर करता है।

लेकिन आप सही कह रहे हैं, वास्तव में कोई बिना दिमाग वाला जवाब नहीं है। ओपन सोर्स की दुनिया में ओवर ऑल चॉइस काफी आम है।


4
मैं क्यूटी का चयन सिर्फ इसलिए करूंगा क्योंकि यह
Gtk

1
एक अच्छी तरह गोल जवाब के लिए +1। क्यूटी अच्छा और शक्तिशाली है, और दो बाइंडिंग (लाइसेंस-वार) उपलब्ध हैं।
क्रिस्तोफ़ेद

यकीनन यह अब विंडोज पर बदसूरत लग रही है। फिर भी, मुझे यह पसंद नहीं है कि आपको किस कोड को लिखना है। कोड बदसूरत। उपस्थिति, विशुद्ध रूप से मूल, और पिछले पर काफी उचित है।
वारेन पी

5

कोई 'मानक' नहीं है और मैं सहमत हूं - विकल्पों का बहुतायत दर्द है। अजगर GUI के लिए एक एकीकृत 'टू वे टूल' IDE के रूप में, मुझे यह भी आश्चर्य होता है कि वहां कोई भी ऐसा क्यों नहीं लगता है - शायद इसलिए क्योंकि बहुत सारे GUI टूलकिट हैं, कोई भी एक IDE में सिर्फ एक के लिए निवेश नहीं करना चाहता है उन्हें।

कहा जा रहा है कि, P3k के साथ PyQt 4.7 आपको अद्भुत GUI (और साथ ही कई अन्य शक्तिशाली सुविधाएँ) देगा। Http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/introduction.html देखें - "यह PyQt 4.8.4 के लिए संदर्भ मार्गदर्शिका है। PyQt v4 Qt के v4 के लिए पायथन बाइंडिंग का एक सेट है। नोकिया से एप्लीकेशन फ्रेमवर्क। "

PyQt व्यापक उपयोग में है और इस पर कुछ अच्छी किताबें हैं: http://www.qtrac.eu/pyqtbook.html देखें "रैपिड GUI प्रोग्रामिंग विथ पायथन एंड क्यूटी" अन्य के बीच (पुस्तक थोड़ी पुरानी है - इसे अद्यतन करने की आवश्यकता है P3k के लिए)।

PyQt के साथ 2 गंभीर मुद्दे हैं:

1) यह कुछ विशिष्ट रूप से 'unpythonic' विशेषताएं हैं, C ++ Qt के कामों में सिर्फ एक पतला आवरण है। लेकिन मैंने P3k-PyQt 4.7 की सिफारिश की, क्योंकि कुछ को 'नवीनतम और सबसे बड़े' पैकेज में संबोधित किया गया है। इस पोस्ट को देखें:

PyQt डिजाइन मुद्दों

2) व्यावसायिक उपयोग के लिए, प्युक्ट और क्यूटी दोनों के लिए बहुत खड़ी लाइसेंस फीस है।

PyQt के लिए एक अप और आने वाला विकल्प Nokia से PySide है, Qt के लिए एक और पायथन रैपर है जो पूरी तरह से खुला स्रोत है (जिसमें Qt लाइसेंसिंग शामिल नहीं है)।

Qt के बारे में बहुत कुछ जानना बाज़ार की समझदारी नहीं है, और आप इसे PyQt से प्राप्त करेंगे, इसलिए यदि आप विशेषज्ञ बनने के लिए एक GUI प्लेटफ़ॉर्म पर निर्णय लेने की कोशिश कर रहे हैं, तो मैं इसे (या PySide) गंभीर विचार दूंगा। ।

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

HTH


3

pyGTK विपुल है। यह उपयोग करने के लिए बहुत आसान है और GUIs बनाता है जो आधे बुरे नहीं लगते हैं।


समुदाय कितना समृद्ध है? इसके फोरम में उत्तर कितनी तेजी से आते हैं?
RPK

1
@RPK, मेरे पास कोई विचार नहीं है, मुझे कभी मदद के लिए पूछना नहीं पड़ा, सब कुछ उपयोग करने के लिए बहुत आसान है।
dan_waterworth

मुझे यकीन नहीं है कि "विपुल" सही शब्द है। "संतान पैदा करना, युवा, फल इत्यादि, बहुतायत से; अत्यधिक फलदायक: एक विपुल नाशपाती वृक्ष" शायद "लोकप्रिय" या "भयानक"।
एस.लॉट

@ एस.लॉट, विपुल: "इसी तरह से परिणाम या प्रचुर मात्रा में काम करता है"। (दूसरी विकिपीडिया परिभाषा)। "उत्पादन करने के लिए, फल का फल; सक्रिय; के रूप में, एक विपुल मस्तिष्क; बुराई का एक विपुल विपत्ति।" (वेबस्टर का संशोधित अनब्रिडेड डिक्शनरी (1913 + 1828))
dan_waterworth

के रूप में विपुल "pyGTK अनुप्रयोगों का एक बहुत कुछ पैदा करता है?" तना हुआ लगता है। लोग applicatios का उत्पादन करते हैं। pyGTK एक लोकप्रिय आधार है, शायद, लेकिन यह निर्माता की तरह प्रतीत नहीं होता है।
S.Lott

0

Gtk3 एक GUI फ्रेमवर्क है जो बहुत परिपक्व है। इसमें देशी पायथन बाइंडिंग (GObject Introspection) और बहुत सारे दस्तावेज हैं । यदि आप काफी GUI कर रहे हैं, तो अंजुता का उपयोग करने पर विचार करें । अंजुता में आपके विजेट्स को आसानी से सेटअप करने के लिए एक ड्रैग और ड्रॉप इंटरफेस है।

WxWidgets बहुत अच्छा है, हालांकि पायथन कॉलबैक को गतिशील रूप से उत्पन्न करने का कोई आसान तरीका नहीं है जैसे अंजुता Gtk के लिए करती है।

PyGtk को अब Gtk3 के पक्ष में Python बाइंडिंग (GObject Introsection) के रूप में चित्रित किया गया है

PyQt भी Python GUI में एक खिलाड़ी है, लेकिन इसमें एक बड़ा समुदाय नहीं है।

BoaConstructor अब बनाए रखा है और उपयोग करने के लिए मूर्ख होगा।

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