我想像qDebug()一样显示QbyteArray的值。

qDebug()<<byteArray    ===  Displays -> "\x8E\xA9\xF3\xA5"


当我进行在线转换时,如何将这个QbyteArray捕获到QString中,它给我“ ????”作为输出。

我希望QString的内容与QDebug()的输出相同;

"\x8E\xA9\xF3\xA5"


以便
QString字符串应包含“ \ x8E \ xA9 \ xF3 \ xA5”

最佳答案

使用构造函数构建一个QDebug对象:


  QDebug::QDebug(QString *string)
  
  构造一个写入给定字符串的调试流。


例:

#include <QApplication>
#include <QDebug>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QLabel label;
    QByteArray ba("\x8E\xA9\xF3\xA5");
    QString res;
    QDebug db(&res);
    db << ba;
    label.setText(res);
    label.show();

    return a.exec();
}


c&#43;&#43; - 将QbyteArray保留为Qstring-LMLPHP



更新:

如果没有“ \ x”,请使用toHex():

#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QLabel label;
    QByteArray ba("\x8E\xA9\xF3\xA5");
    label.setText(ba.toHex());
    label.show();

    return a.exec();
}

关于c++ - 将QbyteArray保留为Qstring,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51337386/

10-13 08:28