मैं ग्राफिकल और जीयूआई घटकों के लिए काम कर रहे एक सॉफ्टवेयर सिस्टम में क्यूटी का व्यापक रूप से उपयोग करता हूं। हालांकि, अधिकांश आंतरिक एल्गोरिदम और डेटा की प्रसंस्करण के लिए क्यूटी एक छोटी भूमिका निभाता है।दोनों std :: स्ट्रिंग और क्यूस्ट्रिंग दोनों का उपयोग करके
मैं अक्सर std :: string से QString या वीज़ा बनाम में कनवर्ट करने की आवश्यकता में भाग लेगा। मेरा झुकाव जितना संभव हो सके std :: स्ट्रिंग का उपयोग करना है और QString केवल का उपयोग करना है जब मुझे फ़ाइल सिस्टम के साथ काम करने वाले क्यूटी कक्षाओं में तारों को पारित करने की आवश्यकता होती है।
जैसा कि मैं आज सुबह प्रोग्रामिंग कर रहा था, यह मुझे मारा कि यह मेरे कोड में छिड़काव दोनों std :: string और QString दोनों के लिए खराब डिज़ाइन हो सकता है। क्या मुझे पूरी तरह से क्यूस्ट्रिंग पर स्विच करना चाहिए? क्या कोई और इस डिजाइन पसंद में भाग गया है?
क्यूटी एसटीएल की एक ही कार्यक्षमता प्रदान करता है, लेकिन क्यूटी कम मानकीकृत और स्थिर होने के बाद भी मैं पूरी तरह से संकोच कर रहा हूं।
'क्यूस्ट्रिंग' में एक विधि' toStdString() 'है। यहां देखें: http://doc.trolltech.com/4.5/qstring.html#toStdString। 'Std :: string' से 'QString' बनाने के लिए आप इस कन्स्ट्रक्टर का उपयोग कर सकते हैं: http://doc.trolltech.com/4.5/qstring.html#QString-7 – yasouser
@Yasourer: हाँ, लेकिन वे वैश्विक स्तर पर निर्भर हैं चरित्र एन्कोडिंग सेट करें। ये फ़ंक्शंस लाइब्रेरी से आते हैं जिन्हें 'std :: string' की दूसरी लाइब्रेरी से मिलती है, जिसमें हमेशा यूटीएफ -8 होता है। –
आप काम करने के लिए उन कार्यों को बेहतर बना सकते हैं भले ही तारों में लंबाई को पार करके, एनयूएल एम्बेडेड एनयूएल शामिल हो - 'वापसी QString :: सेUUF8 (s.c_str(), s.size())' और 'auto buf = s। toUtf8(); वापसी std :: string (buf.data(), buf.size()); '। –