2013-01-11 69 views
5

我有一個字符數組,並希望轉換的值中的一個字符到QString的:CHAR到QString的

unsigned char inBuffer[64]; 

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

這不是工作(我得到一個編譯錯誤)。有什麼建議麼?

+0

你的輸入數據是哪種編碼? –

+2

e expression'* inBuffer [1]'不會從字符串中獲得第二個字符。它採用字符串中的第二個字符,將其視爲地址並取消該地址。你可能是指'inBuffer [1]',沒有星號。 –

回答

5

請檢查http://qt-project.org/doc/qt-4.8/qstring.html

QString & operator+= (char ch) 

QString & operator= (char ch) 

您可以使用操作符+ =追加一個字符,或運營商=指定一個字符。

但是在你的代碼中它會調用構造函數,而不是operator =。 char沒有構造函數,所以你的代碼不能編譯。

QString str; 
str = inBuffer[1]; 

的QString有一個構造

QString (QChar ch) 

所以ü可以使用下面的代碼來做到這一點

QString str= QChar(inBuffer[1]); 

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

你是如何聲明inBuffer?如果你的意思是outBuffer,刪除引用操作:

QString str = outBuffer[1]; 
0

這是做到這一點的最簡單的方法:

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

x+=y; 

所以在這裏你有一個帶char的QString。

+0

這似乎是一種可能的方式(沒有嘗試過),但其他答案對我來說更容易。 – Melebius