2008-09-23 24 views

उत्तर

10

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

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

मैंने कभी जंबी का उपयोग नहीं किया है।

0

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

+2

क्यूटी पुस्तकालय नहीं है, यह एक ढांचा है। – nbro

3

सी ++ पर आपके एकमात्र अन्य विकल्प एमएफसी और wxwidgets हैं। क्यूटी/wxwidgets काफी हद तक एक व्यक्तिगत वरीयता है। मुझे लगता है कि क्यूटी अच्छे दस्तावेज के साथ एक साफ डिजाइन है।
क्यूटी डेवलपर वेतन के लगभग एक महीने की लागत है यदि आप इसे जीपीएल के लिए उपयोग नहीं कर रहे हैं।

+1

बेशक एमएफसी और wxwidgets से अन्य विकल्प हैं! उदाहरण के लिए, डब्ल्यूटीएल है! –

+0

डब्ल्यूटीएल बल्कि छोड़ दिया गया है और आराम के लिए एमएफसी के बहुत करीब है - सुनिश्चित नहीं है कि मैं इसे छोटी उपयोगिता –

+1

के अलावा किसी अन्य चीज़ के लिए चुनना चाहता हूं। कई अन्य टूलकिट भी हैं। Fltk, विशेष रूप से Gtk सी ++ बाइंडिंग है, लेकिन सी बाइंडिंग के साथ कोई gui टूलकिट प्रयोग योग्य है। –

28

मैं वाणिज्यिक विकास के लिए कई वर्षों से क्यूटी का उपयोग कर रहा हूं और इससे बहुत खुश हूं।

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

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

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

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

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

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

मैंने या तो जंबी का उपयोग नहीं किया है।

+0

हाय डेविड, क्या आप तीसरे पक्ष के पुस्तकालयों का जिक्र कर रहे हैं? क्या आप मुझे एक उदाहरण दे सकते हैं? – Krishnan

+0

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

3

मैं अब दो वर्षों से क्यूटी का उपयोग कर रहा हूं।

चीजें मैं क्यूटी पर चाहते हैं:

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

मैं अत्यधिक Qt Developer Days की सिफारिश कर सकता हूं। यदि आपके पास भाग लेने का मौका है, तो इसे करें! वहां बहुत अच्छी और बहुत रोचक वार्ताएं हैं।

4

मैंने पिछली नौकरी में क्यूटी का इस्तेमाल किया था। मेरे पास कई वर्षों पहले क्यूटी के साथ संपर्क का पूर्ण संक्षिप्त संपर्क था, इसलिए मैं काफी क्यूटी न्यूब था।

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

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

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

सिग्नल/स्लॉट्स ने कुछ उपयोग किया, लेकिन यह बहुत बुरा नहीं था, और मैंने कुछ साधारण रैपर लिखा था जब कनेक्शन ऐप को रोकने से मूर्खतापूर्ण टाइपो को रोकने में विफल रहा था। काम करने से

मुझे जो कुछ भी पसंद आया वह यह है कि क्यूटी के पास लगभग हर चीज की आवश्यकता थी। आप इसे नाम दें - स्टोरेज, नेटवर्किंग, जीयूआई, थ्रेडिंग, कंटेनर - क्यूटी के पास इससे निपटने के लिए एक वर्ग है। कौन सा आईएमएचओ महत्वपूर्ण है क्योंकि पुस्तकालयों को मिलाकर कभी-कभी समस्याएं पैदा हो सकती हैं।

क्यूटी के लिए स्रोत कोड होने के कारण केवल एक सादा ब्याज के लिए एक बड़ा प्लस था, लेकिन यह मुझे विकास के दौरान उपयोग के लिए डीबग संस्करण समेत मेरे चयन के संकलक और सेटिंग्स का उपयोग करके क्यूटी संकलित करने की अनुमति भी देता था।

मुझे ट्रॉल्टेक का समर्थन काफी अच्छा लगता है। मैंने क्यूटी पर कुछ बग उठाए, जिनमें से एक को तय किया गया था और जारी किया गया था, जबकि मैं अभी भी परियोजना पर काम कर रहा था (केवल 6 महीने की नौकरी)।

एकमात्र नकारात्मक जिसे मैं याद कर सकता हूं वह क्यूटी ऑब्जेक्ट्स (वीएस का उपयोग करके) को डीबग करने में कठिनाई थी - वीएस के लिए एक क्यूटी प्लगइन है जो क्यूटी ऑब्जेक्ट्स की जांच कर सकता है लेकिन मैं वीएस के मुफ्त संस्करण का उपयोग कर रहा था और प्लगइन्स काम नहीं करता यह। लेकिन वह क्यूटी की गलती नहीं थी।

मैंने जंबी का उपयोग नहीं किया है, इसलिए टिप्पणी नहीं कर सकता।

8

यहाँ क्यूटी के साथ अपने पक्ष और विपक्ष में से कुछ हैं:

सकारात्मक:
क्रॉस-प्लेटफॉर्म
मैं इस एक पता हमेशा प्रयोग किया जाता है, लेकिन क्यूटी साथ आगे और पीछे विंडोज और लिनक्स के बीच जाने के बाद , यह आश्चर्यजनक है कि उठने और दौड़ने के लिए मुझे कितना कम करना है। मुझे लगता है कि इस तथ्य से मदद मिली है कि मैं केवल क्यूटी डिजाइनर के साथ विम का उपयोग करता हूं।

QMake
यह क्यूटी की मेरी पसंदीदा पहलुओं में से एक है। WxWidgets, FLTK, आदि में काम करने के बाद, मैं अलग-अलग बिल्ड सिस्टम के साथ गड़बड़ करने के लिए बहुत थक गया हूं और मैं मैन्युअल रूप से अपनी मेकफ़ाइल बनाना नहीं चाहता हूं। मैं वर्तमान में क्यूटी के अलावा किसी भी अन्य चीज़ पर सीएमके का उपयोग करता हूं, लेकिन मुझे लगता है कि मैं धीरे-धीरे सीएमटी पर भी क्यूटी चला रहा हूं। हालांकि QMake के साथ जाने के लिए यह इतना आसान है।

QTestLib
मैं अन्य सी ++ इकाई परीक्षण चौखटे एक जोड़े को देखा और जब मैं QTestLib उपयोग करते हुए मेरे परीक्षण बनाई गई है, यह NUnit (सी #) के समान महसूस किया और मिनट के भीतर मैं कई गुजर परीक्षण किया था। मैंने यह भी देखा कि मेरा खुद का continuous integration वातावरण बनाना बहुत आसान होगा।

जावा के निकटतम और उत्पादकता में नेट
सी ++ के बारे में लोगों को जो मैंने सुना/पढ़ा है, वह सबसे बड़ी बात है, "मैं जावा या नेट के साथ अधिक उत्पादक हो सकता हूं"। व्यक्तिगत अनुभव से मैं ग्रहण या विजुअल स्टूडियो को लोड करने से पहले, विम और क्यूटी डिजाइनर का उपयोग कर क्यूटी में चल रहे किसी एप्लिकेशन का प्रोटोटाइप प्राप्त कर सकता हूं। मुझे क्यूटी में पुस्तकालयों का एक बहुत ही समान सेट मिलता है जो मेरे पास नेट या जावा में है और यदि यह वहां नहीं है तो मैं वहां मौजूद मौजूदा सी ++ कोड का लाभ उठा सकता हूं।


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

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

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


मुझे लगता है कि अब मैं कर रहा हूं :)। ओह, मैंने जंबी का उपयोग नहीं किया है, लेकिन मुझे लगता है कि जंबी के साथ सी ++ में विकसित प्लगइन का उपयोग करना कितना आसान है, यह जानने के लिए मुझे दो प्रोटोटाइप परियोजनाओं में वास्तव में दिलचस्पी है। विशेष रूप से जंबी को सी ++ प्लगइन के साथ एक वेब इंटरफ़ेस के रूप में उपयोग करना।

ईमानदार होने के लिए मैंने इस पर बहुत कुछ नहीं पढ़ा है, इसलिए यह असंभव या बहुत आसान हो सकता है।

+4

क्या लागत? यह अब एलजीपीएल है, और जीपीएल पहले दिन से आसपास रहा है! – fengshaun

+0

मूल रूप से यह विंडोज पर 2500 जीबीपी/डेवलपर था, फिर यह लिनक्स पर जीपीएल था (यदि आप वाणिज्यिक ऐप्स कर रहे हैं तो बहुत मदद नहीं) तो एक साल पहले एलजीपीएल बन गया। –

0

यह प्रयोग न करें, फिर भी ...

प्रो: क्यूटी एक वैकल्पिक 3 चरण लेआउट, जहां के रूप में WX केवल 2 वर्तमान के लिए अनुमति देता है (मेरा मानना ​​है कि वे 3 चरण करने के लिए योजना बना रहे हैं, बस नहीं है अभी तक काम किया)।

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

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