2009-05-08 15 views
13

मैं अच्छी प्रोग्रामिंग भाषा बाइंडिंग (जावा, रूबी और पायथन) के साथ क्रॉस-प्लेटफ़ॉर्म के बारे में सोच रहा हूं। "फ्लैटेस्ट" सीखने की वक्र क्या होगी लेकिन मानक जीयूआई सुविधाओं में से अधिकांश को करने के लिए अभी तक पर्याप्त शक्तियां क्या होंगी? आप लोग क्या करेंगे/जेल की सिफारिश करेंगे; FOX, wx, Tk या Qt?प्रैक्टिकल जीयूआई टूलकिट?

उत्तर

20

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

+0

प्लस, यदि आप ओपन सोर्स (जीपीएल के रूप में जारी) लिख रहे हैं तो यह मुफ़्त है। – Matt

+5

इसका एलजीपीएल, इसलिए यह आपके निशुल्क है कि आप अपने ऐप के लिए किस लाइसेंस का उपयोग करते हैं। – gbjbaanb

+0

यदि आपको आरटीएल स्क्रिप्ट का समर्थन करने की आवश्यकता है तो QT4 का सर्वोत्तम BIDI समर्थन है। सबसे लचीला, और IMHO अमीर। – elcuco

7

ईमानदारी से, मैंने चीजें, डब्ल्यूएक्स और क्यूटी के साथ चीजें बनाई हैं, और मैं उन सभी को समान रूप से नफरत करता हूं। क्यूटी का दृश्य संपादक तीनों विचारों में से कम से कम अप्रिय है।

+0

मुझे पता है कि अधिकांश पेशेवर टीके प्रोग्रामर इस बात से सहमत हैं कि उपयोग करने के लिए इतना आसान है कि दृश्य संपादक बस रास्ते में आता है। चाहे वह टीटी की तुलना में क्यूटी या डब्ल्यूएक्स के उपयोग की सापेक्ष आसानी के बारे में कुछ भी कहता है, मुझे नहीं पता। –

+1

ठीक है, मुझे अभी भी श्राप पसंद है। –

+0

@ चार्ली मार्टिन आपके इतिहास को देखते हुए मुझे पता है क्यों :-) – lothar

1

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

+1

पूरी तरह से सच नहीं है - मूल देशी विजेट्स (मूल: विंडोज़ और मैक) वाले प्लेटफार्मों पर मूल विजेट का उपयोग करता है। कोई अनुकरण नहीं है, आपको वास्तविक सौदा मिल जाता है। –

2

यदि आप जावा पर विचार कर रहे हैं, तो SWT एक उत्कृष्ट क्रॉस-प्लेटफ़ॉर्म GUI टूलकिट है।

4

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

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

+1

मैंने दूसरों की कोशिश नहीं की है लेकिन मैं जोएल के साथ दृढ़ता से सहमत होने जा रहा हूं। आगे wx के साथ प्रलेखन वास्तव में अच्छा है। मेरे हैंडल को देखो- मैंने अक्टूबर में गंभीर रूप से पाइथन के साथ काम करना शुरू कर दिया था, एसएएस के बाहर सीमित प्रोग्रामिंग अनुभव था और दिसंबर तक मेरे पास एक अच्छी तरह से कामकाजी और अब तक स्थिर जीयूआई के साथ एक आवेदन था। – PyNEwbie

3

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

टीसीएल, पर्ल, पायथन और रूबी (और अन्य) के साथ काम करने के लिए यह एक और लाभ है, इसलिए आप किसी विशेष भाषा से नहीं फंस गए हैं। हालांकि, जावा के लिए कोई प्रत्यक्ष बंदरगाह नहीं है। इसे एक भाषा में जानें और आपका ज्ञान अन्य भाषाओं में आसानी से स्थानांतरित हो जाएगा। टीसीएल और पायथन के साथ बॉक्स से बाहर आता है, इसलिए उन भाषाओं के लिए इंस्टॉल करने के लिए और कुछ नहीं है।

मैं हालांकि, कहेंगे, पिछले कुछ सप्ताह मैं बहुत, ज्यादा Tcl में कोडिंग जब यह GUIs की बात आती है पसंद करते हैं अजगर/Tkinter कोड के कई सौ लाइनों लेखन के बाद, लेकिन वह किसी और चीज से एक व्यक्तिगत बात की अधिक है ।

Tcl, रूबी और पर्ल के साथ टी के बारे में अधिक के लिए देखें http://www.tkdocs.com

+0

डब्ल्यूएक्स मेरी राय के लिए टी से बेहतर दिखता है उदाहरण के लिए मैक ओएस एक्स, चूंकि एक्स 11 पर रन चलता है। रुबी के लिए इसे रूबीजम्स के माध्यम से स्थापित किया गया था और उपयोग में आसान था, लेकिन यह मैक ओएस एक्स में निर्माण के बाद से शुरू करना भी आसान था। मैं शायद पाइथन या रूबी परियोजनाओं के लिए डब्ल्यूएक्स के लिए जाऊंगा। – davidhalldor

+1

में कार्बन पोर्ट और कोको काम करता है, जिसका अर्थ है कि आप मैक पर X11 का उपयोग करके फंस नहीं गए हैं जब तक कि आप नहीं चाहते हैं। मैक और विंडोज़ पर मूल विजेट के उदाहरण देखने के लिए tkdocs.com वेबसाइट पर जाएं। और टीसीएल/टीएस ओएसएक्स के साथ आता है इसलिए आपको कुछ भी इंस्टॉल करने की आवश्यकता नहीं है। –

+0

कोई नेट अपवॉट्स के साथ स्वीकार्य उत्तर प्राप्त करने के लिए किसी विशेष प्रकार का विशेष बैज होना चाहिए, क्योंकि यह अभी दिखाता है। –

1

तो जावा अपनी पसंद की भाषा, Groovy मानते हैं। यह वास्तव में एक अच्छी गतिशील भाषा है जो जावा के शीर्ष पर बैठती है, और जीयूआई लिखने के संबंध में कुछ वाकई अच्छी सुविधाएं (स्विंगबिल्डर) हैं। यदि यह तथ्य नहीं था कि मैं टीसीएल/टीके में अत्यधिक उत्पादक हूं, तो मुझे लगता है कि ग्रोवी मेरी व्यक्तिगत दूसरी पसंद होगी, भले ही मैं जावा का बड़ा प्रशंसक न हो या स्विंग प्रति सेकेंड न हो। ग्रोवी उन दोनों में से बहुत से टेडियम लेना चाहता है।

अधिक जानकारी के लिए GUI Programming with Groovy देखें।

+0

मुझे ग्रोवी वास्तव में दिलचस्प लगता है और मैं निश्चित रूप से स्विंग जीयूआई बनाने पर जांच करूंगा। कई महान आईडीई के पास स्विंग टूल्स/एडॉन्स जैसे इंटेलिजे और एक्लिप्स शामिल हैं। – davidhalldor

1

मैं जीटीके की सलाह देता हूं। यह एक अच्छा, क्रॉस-प्लेटफॉर्म, अच्छी लग रही टूलकिट है। यह भाषा बाइंडिंग के साथ दिमाग में डिज़ाइन किया गया है और अच्छी भाषा बाइंडिंग (pygtk, रूबी/gtk2, जावा-gnome, gtk # और अधिक) बनाने की अनुमति देता है। जीटीके + सीखना काफी आसान है।

2

मैं दृढ़ता से Rapid GUI Programming python development पुस्तक की अनुशंसा करता हूं। Author's Page

मुझे याद है कि एल्सेवियर ने पाइथन-जीयूआई पुस्तक पुस्तक जारी की है लेकिन लिंक और नाम अब मुझे बचाना है।

0

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

+0

क्या आप "अधिक" परिभाषित कर सकते हैं। जीयूआई टूलकिट के अलावा आपको "अधिक" क्या मिलता है? –

0

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

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

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

भाषाओं की पसंद को देखते हुए, मैं रूबी चुनूंगा।

निष्पक्षता में, मैंने wxRuby या Tk की कोशिश नहीं की है। लेकिन मुझे पता है कि मैं जीयूआई को कोड-कोड नहीं करना चाहता हूं। आप visualruby.net पर इस पर अपना काम देख सकते हैं। मैंने कई जीयूआई बनाने के लिए ग्लैड के साथ रूबी का उपयोग किया है।

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