将数据附加到QByteArray中

时间:2014-03-21 07:06:20

标签: qt qstring qbytearray

我想在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。

1 个答案:

答案 0 :(得分:1)

以下适用于我:

QByteArray baData;
baData.fill(0, 80);

QString str = "Hello World";
baData.insert(0, str.toLocal8Bit());
baData.resize(80);

基本上它是如何工作的,你用{80}字节的0填充QByteArray,在开头插入你的数据,然后将它重新调整为80字节。