2009-02-25 18 views
19

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

मुझे कौन सा जीयूआई टूलकिट उपयोग करना चाहिए?

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

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

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

इसके अतिरिक्त एक क्रॉस प्लेटफ़ॉर्म टूलकिट एक प्लेटफ़ॉर्म टूलकिट पर बेहतर होगा। हालांकि अगर यह एक प्लेटफार्म टूलकिट होना चाहिए तो मैं इसे लिनक्स के लिए पसंद करूंगा।

अंत में, मैं एक बंद स्रोत टूलकिट को एक ओपन सोर्स टूलकिट पसंद करूंगा।

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

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

उत्तर

26

सी ++ के लिए, मेरी राय में, क्यूटी कम से कम निराशाजनक और सबसे पूर्ण रूप से विशेषीकृत टूलकिट है। यह भी पूरी तरह से पार मंच है। ध्यान दें कि क्यूटी मार्च 200 9 में कुछ समय एलजीपीएल लाइसेंस प्राप्त होगा, जब संस्करण 4.5 उपलब्ध हो जाएगा। वर्तमान में, यह केवल एक जीपीएल और वाणिज्यिक लाइसेंस संस्करण में पेश किया गया है।

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

अपने तकनीकी एप्लिकेशन के लिए, आपको लगता है कि Qwt (http://qwt.sourceforge.net/) आपको जो चाहिए वह प्रदान करता है। यह क्यूटी पर बनाया गया है।

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

अन्य क्रॉस प्लेटफ़ॉर्म सी ++ विकल्प wxwidgets है, जो प्रयोग योग्य है लेकिन वास्तव में Qt से तुलनीय नहीं है। यह बहुत कम स्तर टूलकिट है, और इसका उपयोग करना आसान नहीं है या पूरी तरह गोलाकार नहीं है।जीटीके + जीटीके + की भावना में एक और विकल्प है।

+0

एक और सी ++ विकल्प है: FLTK। माना जाता है कि यह ओपनजीएल अनुप्रयोगों की ओर तैयार है, लेकिन यह पूरी तरह से फीचर्ड सी ++ जीयूआई एपीआई है, और एक संशोधित एलजीपीएल (एक स्थिर लिंकिंग अपवाद के साथ) के तहत है। – greyfade

+0

जीटीकेएम खिड़कियों पर भी काम करता है। – drby

+1

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

1

Qt। इसके अलावा आप KDE का उपयोग कर सकते हैं जो Qt के शीर्ष पर बनाया गया है।

+0

शायद यह एक मूर्ख सवाल है लेकिन क्या केडीई बहुत ज्यादा लिनक्स नहीं है? –

+0

बिल्कुल मूर्खतापूर्ण प्रश्न नहीं ;-) केडीई _mostly_ लिनक्स पर प्रयोग किया जाता है, लेकिन आप केडीई पुस्तकालयों का उपयोग करके एक एप्लीकेशन लिख सकते हैं और सिद्धांत रूप में विंडोज़ पर चलने से रोकने के लिए कुछ भी नहीं है। –

19

WxWidgets आज़माएं। क्रॉस प्लेटफार्म (लिनक्स, मैक ओएस एक्स, और विंडोज पर संकलन) और व्यापक रूप से स्वीकार किया जाता है।

http://www.wxwidgets.org/

मुक्त स्रोत भी!

4

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

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

+1

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

+0

सत्य होने पर, आप अभी भी विंडोज लक्ष्य और मैक लक्ष्यों के लिए कक्षाओं के विभिन्न सेटों का उपयोग कर समाप्त हो जाते हैं। ओएस एक्स के लिए QMacStyle से और विंडोज़ के लिए QWindowsXPStyle से, जबकि wxwidgets के सभी प्लेटफार्मों के लिए एक एकल एपीआई है –

+0

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

3

मैं wxWidgets को DialogBlocks के साथ भी अनुशंसा करता हूं, जो वास्तव में एक अच्छा दृश्य जीयूआई निर्माता है।

मैं कहूंगा कि wxwidgets में कुछ मोटे किनारे हैं, लेकिन विकास समुदाय बहुत सक्रिय और बग रिपोर्ट/प्रश्न/योगदान के लिए बेहद उत्तरदायी है।

6

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

+0

इस तथ्य का जिक्र नहीं है कि जीटीके लिनक्स में अधिक आम है, इसलिए उपयोगकर्ताओं को आपके आवेदन के स्वरूप और अनुभव के लिए अधिक उपयोग किया जाएगा। – Lalaland

+0

सीएमके का उपयोग करते समय, 'moc' सामान स्वचालित रूप से संभाला जाता है और उपयोगकर्ता से किसी भी प्रबंधन की आवश्यकता के बिना। – antonone

4

मेरे पास एक ही प्रश्न था और अच्छी GUI टूलकिट के लिए खोज की गई थी।

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

मेरा परिणाम? लगभग 9 वर्षों से मैं क्यूटी का उपयोग करता हूं (लेकिन केवल जीयूआई सामान के लिए पहले साल) - अब मेरे पास लोड संतुलन, भारी मल्टीथ्रेडिंग और छवि प्रसंस्करण के साथ अत्यधिक जटिल नेटवर्किंग ऐप्स हैं।

आप पेशेवर समर्थन के रूप में वाणिज्यिक उपयोगकर्ता के रूप में क्यूटी का उपयोग कर सकते हैं (जैसे मेरे) या जीपीएल के तहत अपनी परियोजनाएं शुरू करें और 4.5 एलजीपीएल (जो व्यावसायिक उपयोग की अनुमति देता है) के साथ शुरू करें।

अन्य विकल्प जैसे wxwidgets और GTK ++ जीयूआई प्रोग्रामिंग के लिए बहुत अच्छे विकल्प हैं।

लेकिन यदि आप एक अच्छी तरह से प्रलेखित और पूर्ण समाधान चाहते हैं, तो क्यूटी आपकी पसंद है।

शुभकामनाओं सहित, 3DH

0

मैं wxWidgets (टूलकिट) + wxFormBuilder (जीयूआई-डिजाइनर) + eclipse (आईडीई) का उपयोग करें। सभी उपकरण क्रॉस-प्लेटफ़ॉर्म और मुफ्त हैं।

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