2009-06-24 24 views
5

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

हाल ही में, मैंने पाइथन निर्मित सीटीपी के बारे में सोचा है। सैद्धांतिक रूप से, शुद्ध पायथन जीयूआई लाइब्रेरी बनाना संभव है जो विंडोज़ (windll.user32.CreateWindowEx आदि) पर ctypes का उपयोग करेगा, मैकोज़ पर मूल pyObjC और gnome/kde पर pyGTK/pyQt। क्या ऐसी पुस्तकालय मौजूद है? यदि नहीं, तो आप कैसे सोचते हैं कि किसी विचार के साथ क्या गलत है?

+1

टिंकर को स्थापित करने की आवश्यकता नहीं है, यह पाइथन के मानक वितरण का हिस्सा है। –

+0

केवल विंडोज़ और मैकोस पर। इसे उबंटू इत्यादि पर स्थापित करने की आवश्यकता है – grigoryvp

+0

क्या आपका मतलब है "पिक्थन में wx rewrite"? आपको लगता है कि यह पहले से ही क्या किया जा रहा है उससे बेहतर होगा? – nosklo

उत्तर

10

कम से कम प्रयास और सर्वोत्तम परिणामों का मार्ग यह जानना होगा कि मौजूदा जीयूआई पुस्तकालयों का उपयोग करके ऐप को तैनात करने में क्या होता है।

+1

+1: "काफी हेवीवेट" एक अतिस्तरीय है। ज्यादातर मामलों में, आपको जीयूआई बनाने के लिए उन सभी की आवश्यकता होती है। –

2

मुझे लगता है कि यह पहिया का आविष्कार नहीं करने वाला है। यह काम करेगा, लेकिन आपको ऐसा क्यों करना चाहिए? आपके द्वारा वर्णित सभी जीयूआई पुस्तकालय स्थिर और कम या कम बुलेट प्रूफन हैं।

मैं कल्पना कर सकता हूं कि शुद्ध पायथन पुस्तकालय को लागू करने वाले कुछ प्रयोग हैं। लेकिन मैंने कभी नहीं देखा। जीयूआई के बारे में सब कुछ कड़ी मेहनत है और एक शुद्ध पायथन पुस्तकालय में इतने बड़े दर्शक नहीं होंगे।

3

एक बात के लिए, उन सभी पुस्तकालयों, अलग कपोल-कल्पना उपयोग करती हैं इसलिए कुछ भी है कि उन सभी के साथ काम किया कार्यक्षमता, या के कम से कम-आम-विभाजक सेट काम का एक बहुत कर प्रत्येक उपयोग करने के लिए समर्थन हवा की संभावना है पूरी तरह से करने के लिए।

4

वास्तव में यह सुनिश्चित नहीं है कि "हेवीवेट" से आपका क्या मतलब है।

डब्ल्यूएक्स प्रत्येक प्लेटफार्म पर देशी नियंत्रण का उपयोग करता है, और जैसा कि मैं कल्पना कर सकता हूं पाइथन में उपयोग करना आसान है; आखिरकार, जीयूआई एपीआई जटिल हैं क्योंकि जीयूआई जटिल हो सकते हैं।

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

8

टिंकर पाइथन मानक वितरण का हिस्सा है और डिफ़ॉल्ट रूप से स्थापित है। इसे सभी पायथन इंस्टॉल पर ढूंढने की अपेक्षा करें जहां पहले स्थान पर ग्राफिकल डिस्प्ले है।

+1

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

+6

"यूई बदसूरत" टिप्पणी ज्यादातर टिंकर के पुराने संस्करणों पर लागू होती है। आधुनिक टीके उन प्लेटफ़ॉर्म पर मूल विजेट का उपयोग करता है जो इसका समर्थन करते हैं। इन दिनों बदसूरत Tkinter अनुप्रयोगों टूलकिट सीमाओं के बजाय प्रोग्रामर प्रतिभा का एक प्रतिबिंब है। उस चर्चा के बारे में अधिक जानने के लिए http://stackoverflow.com/questions/349409/why-are-tk-guis-considered-ugly –

+1

टिंकर डिफ़ॉल्ट रूप से केवल विंडोज़ और मैकोज़ पर स्थापित है। इसे उबंटू इत्यादि पर स्थापित करने की आवश्यकता है – grigoryvp

5

"शुद्ध पायथन गुई लाइब्रेरी" की धारणा गलत है क्योंकि आखिरकार आप सिस्टम स्तर कॉल और विजेट का उपयोग करेंगे, जो कि प्रकार के माध्यम से हो सकते हैं, लेकिन यह इस तथ्य को नहीं बदलेगा कि अगर आप अपना विचार लागू करना शुरू करते हैं तो आप अंततः wxPython बन जाएंगे

5

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

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

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

10

पायथन 2.7 और 3.1 में शुरू होने से, बहुत बेहतर दिखाई देगा।

http://docs.python.org/dev/whatsnew/2.7.html#ttk-themed-widgets-for-tk

"Tcl/टी 8.5 थीम पर आधारित विगेट्स कि फिर से लागू बुनियादी टी विगेट्स लेकिन एक और अधिक अनुकूलन उपस्थिति है और इसलिए अधिक बारीकी से देशी मंच के विगेट्स सदृश कर सकते हैं का एक सेट भी शामिल है। इस विजेट सेट मूल रूप से बुलाया गया था टाइल, लेकिन टीसीएल/टीके रिलीज 8.5 में जोड़े जाने पर टीटीके ("थीम्ड टीके" के लिए) का नाम बदल दिया गया। "

संबंधित मुद्दे