Qt中,将一个结构体转为qbytearray后,如何将这个qpqbytearray重新恢复为之前的结构体

发布时间:2023年12月20日

在 Qt 中,如果你有一个自定义的结构体,并将其转换为 QByteArray,然后想要将 QByteArray 转换回原始的结构体,你可以使用 Qt 的 QDataStream 类来实现这个转换过程。

首先,假设你有一个自定义的线段结构体如下:

```cpp

struct Line{
? ? QPoint start;
? ? QPoint end;
};
```

现在,假设你已经将这个结构体转换为 QByteArray,你可以使用 QDataStream 来将 QByteArray 转换回原始的结构体。

下面是一个示例代码:

```cpp

// 假设 lineByteArray 是之前转换得到的
QByteArray lineByteArray = ...; // 之前转换得到的

QDataStream dataStream(&lineByteArray, QIODevice::ReadOnly);
Line line;
dataStream >> line.start >> line.end;

// 现在 line 结构体已经被填充为原始的值

```

在这个示例中,我们使用 QDataStream 对象来读取 QByteArray 中的数据,并将其填充到原始的 Line 结构体中。

注意,这个转换和恢复的过程都要使用Qdatastream 去实现。

文章来源:https://blog.csdn.net/xcksj666/article/details/135089185
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。