2013-01-11 16 views
5

को मैं एक चार सरणी है और चार से qstring करने में से एक मान परिवर्तित करना चाहते हैं:चार QString

unsigned char inBuffer[64]; 

.... 
QString str= QString(*inBuffer[1]); 
ui->counter->setText(str); 

यह काम नहीं कर रहा (मैं एक संकलक त्रुटि मिलती है)। कोई सुझाव?

+0

आपका इनपुट डेटा कौन सा एन्कोडिंग है? –

+2

ई अभिव्यक्ति '* इनबफर [1]' स्ट्रिंग से दूसरा अक्षर नहीं मिलता है। यह स्ट्रिंग से दूसरा अक्षर लेता है, इसे संबोधित करने वाले पते और बहिष्कार के रूप में व्यवहार करता है। आप संभवतः 'इनबफर [1]' का मतलब तार के बिना। –

उत्तर

5

की जांच करें http://qt-project.org/doc/qt-4.8/qstring.html

QString & operator+= (char ch) 

QString & operator= (char ch) 

आप = एक चार, या ऑपरेटर संलग्न करने के लिए एक चार आवंटित करने के लिए ऑपरेटर + = उपयोग कर सकते हैं।

लेकिन आपके कोड में यह कन्स्ट्रक्टर को कॉल करेगा, ऑपरेटर नहीं =। चार के लिए कोई कन्स्ट्रक्टर नहीं है, इसलिए आपका कोड संकलित नहीं हो सकता है।

QString str; 
str = inBuffer[1]; 

QString एक निर्माता

QString (QChar ch) 

तो यू निम्नलिखित कोड का उपयोग कर सकते है कि

QString str= QChar(inBuffer[1]); 

या

QString str(QChar(inBuffer[1])); 
1

आपने में बफर कैसे घोषित किया? यदि आप outBuffer मतलब, ड्रॉप भिन्नता ऑपरेटर:

QString str = outBuffer[1]; 
0

यह है कि ऐसा करने के लिए सबसे आसान तरीका है करना है :

QString x=""; 
QChar y='a'; 

x+=y; 

तो यहां आपके पास चार के साथ क्यूस्ट्रिंग है।

+0

यह एक संभावित तरीका प्रतीत होता है (कोशिश नहीं की है) लेकिन अन्य उत्तरों मेरे लिए आसान लगते हैं। – Melebius

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