2008-12-12 12 views
7

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

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

मैंने HTMLayout देखा है और मुझे विचार पसंद है, लेकिन अब तक यह केवल सी ++ में लगता है।

मैं मार्कअप-आधारित gui करने के लिए एक अजगर पुस्तकालय (या यहां तक ​​कि एक डब्ल्यूआईपी परियोजना) की तलाश में हूं।

अद्यतन

कारण मैं क्यूटी के एक्सएमएल स्वीकार नहीं कर सकते इसी कारण मैं programatic दृष्टिकोण से नफरत है, आप अलग-अलग विजेट को अलग-अलग जोड़ रहे हैं, और इसकी प्रत्येक संपत्ति को एक अलग पंक्ति पर निर्दिष्ट कर रहे हैं। यह प्रोग्रामिक तरीके से करने पर कोई लाभ नहीं प्रदान करता है।

उत्तर

7

आप मोज़िला के एक्सयूएल को आजमा सकते हैं।यह XPCOM के माध्यम से पाइथन का समर्थन करता है। pyxpcomext

XUL, संकलित नहीं है यह पैक किया जाता है और रनटाइम पर भरी हुई:

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

3

आप क्यूटी, जो आप उत्कृष्ट PyQt इंटरफेस (क्यों वे इसे नाम नहीं था का उपयोग कर अजगर से उपयोग कर सकते हैं इस पर गौर करना चाहिए पर देखने QtPy ---, मिल यह? --- मैं कभी समझ नहीं पाऊंगा)।

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

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

संपादित करें: बस कुछ लिंक जोड़ने तो ओपी इसके लिए कुछ महसूस मिलता है ...

  • Short intro to Qt programming with C++ - नोटिस क्यूटी डिजाइनर, जो .ui फ़ाइलें आउटपुट है, जो एक है का उपयोग करते हैं एक्सएमएल प्रारूप जो मुझे याद है हाथ से काम करना भी काफी आसान था। PyQt प्रोग्रामिंग पाठ्यक्रम के एक बहुत आसान प्रोग्रामिंग भाषा में किया जा रहा है :-)
  • Info about PyQt on the Python wiki
  • Online book on PyQt programming
+0

मुझे पहले क्यूटी से अवगत कराया गया है, हालांकि गहराई से नहीं, अगर आप xml-markup-thing से संबंधित किसी चीज़ को लिंक जोड़ते हैं तो यह मदद करेगा :) – hasen

+0

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

+0

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

-2

खिड़कियों के अलावा, बहुत समान है?

आप विजुअल स्टूडियो में WinForms संपादक का उपयोग कर सकते हैं और फिर आयरनपीथन से असेंबली से बात कर सकते हैं।

+0

डाउनवॉटेड क्योंकि यह विंडोज के लिए है? मुझे यह नहीं मिला। ऑफ़सेट करने के लिए +1। – orip

+0

डाउनवोट क्योंकि "असेंबली से बात करें" "मार्कअप आधारित यूआई" के बराबर नहीं है, इसके अतिरिक्त, अगर यह सफलतापूर्वक तर्क दिया जाता है कि यह/fmark windows-IDE-specific "असेंबली लाइब्रेरी" के साथ अल्बियेट है, तो यह पीड़ित है क्यूटी के साथ ओपी के समान मुद्दे हैं। – Arafangion

+0

Winforms संपादक कोड उत्पन्न करता है। कुछ मामलों में विशेष रूप से बदसूरत कोड। इसके अलावा, आयरनपीथन .NET रनटाइम के शीर्ष पर पाइथन भाषा का कार्यान्वयन है। इसका मतलब है कि आप बहुत सारे सीपीथन मॉड्यूल खो देते हैं। –

2

wxPython के बारे में कैसे? मैं अभी इसके साथ काम करना शुरू कर रहा हूं, लेकिन एक उपकरण है - एक्सआरसी रिसोर्स एडिटर - जो आपको अपने जीयूआई को इकट्ठा करने की अनुमति देता है, जिसे तब एक एक्सएमएल फ़ाइल में लिखा जाता है। जैसा कि मैं इसे समझता हूं, आपके पायथन एप्लिकेशन आपके पायथन कोड के साथ मिश्रित जीयूआई-लेआउट कोड का पूरा समूह होने के बजाय एक्सएमएल फ़ाइल लोड करता है।

+0

+1। शायद पाइथन के लिए सबसे अच्छा विकल्प। मैं सुझाव दिया कि मैं इस दृष्टिकोण को पसंद करता हूं। एक्सएमएल संसाधन फ़ाइलों के लिए एक गाइड: http://wiki.wxpython.org/UsingXmlResources –

1

यदि आप GTK का उपयोग करते हैं, तो आप Glade का उपयोग कर सकते हैं, जो एक XML फ़ाइल है।

0

एक जीयूआई प्रोग्रामर के रूप में जिसने अनुभव प्राप्त किया है, तो आपको शायद अपने आप को अपने आप को बार-बार करने वाले कार्यों को स्वचालित करने के लिए अपनी खुद की प्यारी छोटी टूलकिट रोल करना चाहिए।

2

आप अपने आवेदन के विकास के लिए Tcl या अजगर और टी की तरह एक भाषा का चयन करते हैं यह काफी इंटरफेस वर्णन करने के लिए अपने स्वयं के डीएसएल लिखने के लिए तुच्छ हो जाता है।

menubar { 
    File => { 
     Open => cmd.open 
     Save => cmd.save 
     Exit => cmd.exit 
    } 
    Edit => { 
     Cut => cmd.cut 
     Copy => cmd.copy 
     Paste => cmd.paste 
    } 
} 

... और अपने मुख्य जीयूआई रूपों इस तरह:: आप, उदाहरण के लिए, एक डीएसएल आप इस तरह मेनू बनाने की सुविधा देता है कि लिख सकते हैं

form PropertiesForm { 
      Font: [fontchooser] 
    Foreground: [foregroundChooser] 
    Background: [backgroundChooser] 
} 
form NewUserForm { 
    username [_____________________] 
    [] administrator 
    enable the following features: 
    () feature 1 
    () feature 2 
    () feature 3 
} 
notebook { 
    Properties => PropertiesForm 
    New User => NewUserForm 
} 

... और इतने पर। टीसीएल वास्तव में आपको इस तरह डीएसएल लिखने में उत्कृष्टता प्रदान करता है। ध्यान दें कि यह क्षमता टीसीएल प्रति सी में नहीं बनाई गई है, लेकिन भाषा डीएसएल को तुच्छ बनाती है। इस प्रकार की कुछ चीज Tcler की विकी पर मौजूद है, उदाहरण के लिए मेनू को बनाने के लिए कोड है जो मैंने Menus Made Easy पर वर्णित किया है।

मुझे लगता है कि, हालांकि, कि कुछ समय बाद आप यह वास्तव में मिल जाएगा, वास्तव में कड़ी मेहनत इस तरह से व्यावसायिक ग्रेड UI के बनाने के लिए।