字符转换为QString

8

我有一个字符数组,想将其中一个值从字符转换为QString:

unsigned char inBuffer[64];

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

这个不行(我得到了一个编译器错误)。有什么建议吗?


你的输入数据使用哪种编码格式? - Frank Osterfeld
3
表达式 *inBuffer[1] 不会取得字符串的第二个字符,它会将第二个字符视为地址并解引用该地址。你可能是想使用 inBuffer[1] 这个表达式,不需要星号。 - Some programmer dude
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]));

2
这是最简单的方法:

这是最简单的方法:

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

x+=y;

所以这里有一个包含字符的QString。

这似乎是一种可能的方式(我还没有尝试过),但其他答案看起来对我来说更容易。 - Melebius

2

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

你只需要使用QString myGreet = QString::fromLocal8Bit(p);


1
你是如何声明 inBuffer 的?如果你指的是 outBuffer,那就去掉解引用运算符:
QString str = outBuffer[1];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接