2008-12-14 6 views
64

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

संपादित करें:

मुझे एक और एक है कि मैं सिर्फ याद, Juce में फेंक दें। गैर वाणिज्यिक उपयोग, और पार मंच के लिए नि: शुल्क। केवल समस्या यह है कि विकास एक व्यक्ति द्वारा नियंत्रित होता है, लेकिन स्रोत कोड उपलब्ध है।

JUCE

उत्तर

44

हालांकि मुझे यकीन है कि आप "चाल" से क्या मतलब है नहीं कर रहा हूँ, मैं केवल आप इन लिंक दे सकते हैं। चाहे आप निर्णय ले सकें कि यह "सर्वोत्तम" है।

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

    • संपादित करें: की 14 जनवरी 2009 को, नोकिया announcedLGPL लाइसेंस में क्यूटी डाल करने के लिए, वाणिज्यिक उपयोग के लिए क्यूटी उपलब्ध बनाने - नि: शुल्क।
  • जीटीकेएमएम। सी ++ प्रसिद्ध gtk + टूलकिट को बाध्यकारी जो गनोम की नींव के रूप में उपयोग किया जाता है। वाणिज्यिक के लिए निशुल्क (लेकिन स्थैतिक रूप से लिंक नहीं कर सकते हैं)। आधुनिक सी ++ एपीआई। केवल जीयूआई टूलकिट। क्यूटी की तरह, यह विजेट को स्वयं खींचता है। यह विंडोज पर कुछ हद तक खराब दिखता है (क्यूटी विजेट को अच्छी तरह से खींचता है)। मैंने इसका परीक्षण नहीं किया है, इसलिए मैं आपको प्रदर्शन नहीं बता सकता।

और भी कुछ हैं। लेकिन मैं केवल उन उचित कल्याणों को जानता हूं जो आपको उनके बारे में बताने के लिए हैं।

+0

ध्यान दिया जाना चाहिए कि क्यूटी देशी विजेट्स का भी उपयोग करता है (यदि यह निश्चित रूप से कर सकता है), और वांछित होने पर स्वामित्व शैलियों का समर्थन करता है (QStylesheets/"CSS" के अतिरिक्त)। – strager

+2

क्यूटी वास्तविक समय के अनुप्रयोगों के लिए कितनी अच्छी तरह से प्रदर्शन करता है, जहां अक्सर पश्चाताप की आवश्यकता होती है? किसी को पता है? – ApplePieIsGood

+0

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

3

मैंने देखा है कि सबसे अच्छे दिखने वाले ओपन सोर्स अनुप्रयोगों में से एक Songbird है। यह एक आईट्यून्स-जैसे मीडिया प्लेयर है जो मॉडजिला के XULRunner framework के शीर्ष पर बनाया गया है।

+4

मुझे गाना बजाने वाला गाना धीमा हो गया और इसे xulrunner लोड करने के ऊपरी हिस्से में डाल दिया। निश्चित नहीं है कि वास्तव में यही कारण था। – thomasrutter

3

मुझे सामान्य रूप से wxwidgets पसंद है, लेकिन मैंने ज्यादातर इसे लिनक्स पर उपयोग किया है। मैंने हाल ही में जी ++ के साथ विंडोज एक्सपी पर स्थापित करने की कोशिश की है और इसे स्थापित करने के समय बी **** है।

संपादित करें: थोड़ा और विस्तार करने के लिए, मुझे इसे बनाने में परेशानी हो रही है।

+0

मुझे कोई परेशानी नहीं है // – msangel

7

आपको सी ++ के लिए कई क्रॉस-प्लेटफार्म जीयूआई पुस्तकालय मिलेंगे, लेकिन AFAIK Qt एकमात्र असली पसंद है।

8

मुझे विश्वास है कि अल्टीमेट ++ (आप अल्टीमेट ++ नाम पर Google पर आसानी से खोज कर सकते हैं) बहुत अच्छा है। यह सी ++ टेम्पलेट्स का भारी लाभ उठाता है, लेकिन समस्या यह है कि यह केवल विंडोज़ और लिनक्स के लिए निष्पादन योग्य बनाता है और मैक ओएस नहीं। यह आईडीईई पर है और इसकी आईडीई अल्टीमेट ++ (चिकन और अंडे की समस्या) का उपयोग करके लिखा गया है।.NET और मोनो पर U ++ का उपयोग करने का लाभ परिणामस्वरूप ऐप्स के पास छोटे पदचिह्न हैं क्योंकि ऐप्स चलाने के लिए कोई ढांचा स्थापित करने की आवश्यकता नहीं है।

20

क्यूटी आज तक अस्तित्व में सबसे पूर्ण, अच्छी तरह से समर्थित, क्रॉस-प्लेटफार्म सी ++ जीयूआई ढांचा है।

5

मुझे हमेशा wxwidgets पसंद आया है।

खिड़कियों पर यह स्थापित करने पर प्रतिक्रिया के बारे में, वहाँ पर उस पर एक जोड़े महान वीडियो ... http://blip.tv/file/1068698 और यहाँ http://wxwidgets.info/video

4

सी ++ जीयूआई उपकरणकिटें की एक सूची एक old blog post I wrote में पाया जा सकता है। उनमें से आधे क्रॉस प्लेटफॉर्म ('बड़े तीन' में) हैं। हां उनमें से कुछ को काफी हद तक त्याग दिया गया है।

दुर्भाग्य से उनमें से कोई भी समझौता किए बिना आते हैं। जब सी ++ जीयूआई पुस्तकालयों की बात आती है तो आईएमओ में कोई स्पष्ट विकल्प नहीं होता है। अपनी विशेष आवश्यकताओं के लिए पूरी तरह से जांच करें।

यदि आपके पास विशेष रूप से विदेशी जीयूआई नहीं है तो WxWidgets, Qt, FLTK या Gtkmm की कोई भी चाल संभवतः चाल करेगी।

2

चलो एक्सवीटी को न भूलें यह सी ++ ऑब्जेक्ट लाइब्रेरी और सी एपीआई के रूप में उपलब्ध है। Www.XVT.com देखें। यह 90 के दशक के मध्य में अपना रास्ता खो गया लेकिन अभी भी अद्यतित और बेचा गया है। यह मूल विगेट्स का उपयोग करता है जहां इम्यूलेशन के बजाए संभव है। जब यह लोकप्रिय था तो इसे 1 9 000+ कंपनियों द्वारा खरीदा गया था ताकि इसे कम से कम सॉफ़्टवेयर शिप किया जा सके और इसके कार्यान्वयन में बड़ी गहराई हो।

और नहीं, मैं उनके लिए काम नहीं करता!

टोनी

15

मैंने हाल ही में ऊपर वर्णित लगभग सभी टूलकिट का अध्ययन किया है। मैं कहूंगा कि क्यूटी का उपयोग करने के लिए सबसे अधिक सलाह देने योग्य टूलकिट है। मैं 'सलाहकार' कहता हूं लेकिन 'सर्वश्रेष्ठ' नहीं क्योंकि वास्तव में कोई टूलकिट सही नहीं है, आम तौर पर पार-प्लेटफ़ॉर्म समस्याओं के लिए कोई 'सही' समाधान नहीं है। , LGPL के अंतर्गत उपलब्ध (क्यूटी 2009.01 उर्फ) जनवरी से शुरू होने वाले 2009

फायदे

यहां प्रो और क्यूटी 4.5 विपक्ष में से कुछ हैं:,

  1. प्लेटफार्मों का एक बहुत का समर्थन करता है सबसे महत्वपूर्ण वाले (मुझे लगता है) विंडोज, मैक ओएस एक्स और लिनक्स हैं।
  2. विंडोज़, मैक ओएस एक्स और लिनक्स पर देशी (कभी-कभी वास्तव में हुड के तहत मूल सामग्री का उपयोग करते हुए) देखता है। यह विंडोज़ पर वास्तव में अच्छा काम करता है। कोको को मैक ओएस एक्स पर समर्थित है, जो एक बड़ा सौदा है। मैक ओएस एक्स पर, इंटरफेस को लगभग देशी कोको अनुप्रयोगों से अलग करने योग्य बनाना संभव है।
  3. यह एक सच में वास्तव में अच्छा क्रॉस प्लेटफॉर्म का निर्माण प्रणाली, जो समय
  4. का भार बचाने के लिए, यह एक पूर्ण सुइट है कुछ की तरह कह सकते हैं एक आवेदन ढांचे, नहीं सिर्फ एक जीयूआई ढांचे के साथ आता है। जैसे डेटाबेस और नेटवर्क। यह आपको वेबकिट नियंत्रण भी देता है।
  5. महान महान दस्तावेज़ीकरण।दस्तावेज के सर्वोत्तम सेटों में से एक जीयूआई ढांचे पर मिल सकता है। यह एमएसडीएन और सेब विकास संदर्भों से भी बेहतर है।
  6. सभी अन्य आम क्रॉस प्लेटफॉर्म सामान

नुकसान:

  1. यह बड़ा है। सेटअप इतना मामूली नहीं है। सीखने में थोड़ा समय लगता है। में बहुत सी डिस्क स्पेस है।
+0

क्यूटी सी में लिखा गया है और एक जीयूआई के लिए पुरानी शैली वाली एपीआई है। यह इसके साथ कई नियंत्रण भी प्रदान नहीं करता है। यहां नए रुझान हैं - एनओवी देखें (https://www.nevron.com/products-open-vision.aspx) - सीएसएस स्टाइल, सी # में लिखा गया है - सी # सख्त वातावरण में भी चलता है - सिल्वरलाइट की तरह। –

+2

क्यूटी एसडीके के विकास के पिछले कई सालों में आपने स्पष्ट रूप से याद किया है। आधुनिक क्यूटी मेटा मॉडलिंग (क्यूएमएल का उपयोग करके), जावास्क्रिप्ट (ज्यादातर क्यूएमएल सामान के लिए), सीएसएस (क्यूटी स्टाइल शीट्स) और बहुत कुछ का समर्थन करता है। यह बड़ी भाषाओं की एक बड़ी मात्रा के लिए भी बाध्यकारी है। चूंकि जावा प्रदर्शनकारी अनुप्रयोगों (रीयलटाइम आवश्यकताओं सहित) के लिए कमाल के लिए है, कृपया इस आलेख को पढ़ें और जो कुछ आपने लिखा है उसे पुनर्विचार करें: http://www.ibm.com/developerworks/library/j-rtj1/ जावा एक महान भाषा है लेकिन जब यूआई प्रोग्रामिंग की बात आती है तो यदि आवश्यक हो तो मैं कुछ और सी/सी ++ तक चिपके रहूंगा। – rbaleksandar

3

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

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