2013-01-11 12 views
5

mam tablicę char i chcą przekształcić jedną z wartości z char do QString:Char do QString

unsigned char inBuffer[64]; 

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

To nie działa (pojawia się błąd kompilatora). Jakieś sugestie?

+0

Które kodowanie jest używane w danych wejściowych? –

+2

e wyrażenie '* inBuffer [1]' nie otrzymuje drugiego znaku z ciągu znaków. Bierze drugi znak z ciągu, traktuje go jako adres i adres URL, które adresują. Prawdopodobnie masz na myśli 'inBuffer [1]', bez gwiazdki. –

Odpowiedz

5

Proszę sprawdzić http://qt-project.org/doc/qt-4.8/qstring.html

QString & operator+= (char ch) 

QString & operator= (char ch) 

Można użyć operatora + = dołączyć char lub operator = przypisać char.

Ale w kodzie wywoła to konstruktor, a nie operatora =. Nie ma konstruktora char, więc twój kod nie może się skompilować.

QString str; 
str = inBuffer[1]; 

QString ma konstruktora

QString (QChar ch) 

więc u można użyć poniższy kod, aby to zrobić

QString str= QChar(inBuffer[1]); 

lub

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

Jak zadeklarowałeś inBuffer? Jeśli masz na myśli outBuffer, spadek operatora wyłuskiwania:

QString str = outBuffer[1]; 
0

Jest to najprostszy sposób, aby to zrobić :

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

x+=y; 

Tak, tutaj masz QString z char.

+0

To wydaje się być możliwy sposób (nie próbowałem), ale inne odpowiedzi wydają mi się łatwiejsze. – Melebius