我有一个 char 数组,想将其中一个值从 char 转换为 qstring:
unsigned char inBuffer[64];
....
QString str= QString(*inBuffer[1]);
ui->counter->setText(str);
这不起作用(我收到编译器错误)。有什么建议么?
请查看http://qt-project.org/doc/qt-4.8/qstring.html
QString & operator+= ( char ch )
QString & operator= ( char ch )
您可以使用 operator+= 来附加一个字符,或使用 operator= 来分配一个字符。
但是在您的代码中,它将调用构造函数,而不是 operator=。char 没有构造函数,因此您的代码无法编译。
QString str;
str = inBuffer[1];
QString 有一个构造函数
QString ( QChar ch )
所以你可以使用下面的代码来做到这一点
QString str= QChar(inBuffer[1]);
或者
QString str(QChar(inBuffer[1]));
这是最简单的方法:
QString x="";
QChar y='a';
x+=y;
所以在这里你有一个带有字符的 QString。
如果你的 var 是:char * p = "hi there";
你刚才QString myGreet = QString::fromLocal8Bit(p);
你是如何声明inBuffer 的?如果您的意思是outBuffer,请删除取消引用运算符:
QString str = outBuffer[1];