在 QByteArray 中插入字节 来自 QString - Qt C++



我有小问题,我需要向 trought modbus 发送一些字节。 一些人的一个是:0x04和0xFB

QString first, second;
first = "0x04";
second = "0xFB"
QByteArray array;
array[0] = first;
array[1] = second;
ecc...ecc..

何解决? 我试过这个:

array[0] = first.toUInt(nullptr,16);

但是这最后一个转换十六进制的其他值。 如何解决?

您可以将字节直接转换为十六进制代码,并将其附加到最终的字节数组中,如下所示:

QByteArray array;
array.append(QByteArray::fromHex("04"));
array.append(QByteArray::fromHex("FB"));

或者简单地说:

QByteArray array = QByteArray::fromHex("04FB");

您可以使用:

QByteArray array=first.toLatin1() + second.toLatin1();
array.replace("0x","");
array= QByteArray::fromHex(array);

最新更新