将QbyteArray保留为Qstring

时间:2018-07-14 10:02:04

标签: c++ qt qt5 qstring qbytearray

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

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

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

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

"\x8E\xA9\xF3\xA5"

这样 QString字符串应包含“ \ x8E \ xA9 \ xF3 \ xA5”

1 个答案:

答案 0 :(得分:1)

使用构造函数构建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();
}

enter image description here


更新:

不带“ \ 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();
}