8

我有一个 char 数组,想将其中一个值从 char 转换为 qstring:

unsigned char inBuffer[64];

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

这不起作用(我收到编译器错误)。有什么建议么?

4

4 回答 4

7

请查看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]));
于 2013-01-11T02:40:57.987 回答
2

这是最简单的方法:

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

x+=y;

所以在这里你有一个带有字符的 QString。

于 2017-06-22T06:34:39.473 回答
2

如果你的 var 是:char * p = "hi there";

你刚才QString myGreet = QString::fromLocal8Bit(p);

于 2021-04-16T12:28:44.247 回答
1

你是如何声明inBuffer 的?如果您的意思是outBuffer,请删除取消引用运算符:

QString str = outBuffer[1];
于 2013-01-11T02:37:48.410 回答