我想在QByteArray' baData '中写一个QString' str '。
'baData'具有固定大小80字节(这是要求)。
如果' str '尺寸小于80 ,请附加“ baData <\ n <剩余数据 em> ', 0(零)值。
我写了以下代码,但没有正常工作。
void MyClass::CopyData(QByteArray &packet)
{
packet.truncate(0);
packet[0] = 0x12;
packet[1] = 0x34;
....
QByteArray baData;
baData.resize(80);
baData = 0;
QString str = "Hello Wrold";
baData = str.toLocal8Bit();
packet.append(baData, 80);
}
数据包大小不固定,但baData大小如果固定,即80。
答案 0 :(得分:1)
以下适用于我:
QByteArray baData;
baData.fill(0, 80);
QString str = "Hello World";
baData.insert(0, str.toLocal8Bit());
baData.resize(80);
基本上它是如何工作的,你用{80}字节的0填充QByteArray
,在开头插入你的数据,然后将它重新调整为80字节。