【问题标题】:Char to QString字符到 QString
【发布时间】:2013-01-11 02:33:07
【问题描述】:

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

unsigned char inBuffer[64];

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

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

【问题讨论】:

  • 您的输入数据采用哪种编码方式?
  • e 表达式 *inBuffer[1] 没有从字符串中获取第二个字符。它从字符串中获取第二个字符,将其视为地址并取消引用该地址。您的意思可能是inBuffer[1],不带星号。

标签: c++ qt qstring


【解决方案1】:

请查看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。

    【讨论】:

    • 这似乎是一种可能的方法(没有尝试过),但其他答案对我来说看起来更容易。
    【解决方案3】:

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

    你只是QString myGreet = QString::fromLocal8Bit(p);

    【讨论】:

      【解决方案4】:

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

      QString str = outBuffer[1];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-26
        • 1970-01-01
        • 2013-12-25
        • 2012-11-30
        • 1970-01-01
        • 1970-01-01
        • 2014-01-25
        • 1970-01-01
        相关资源
        最近更新 更多