Qt QDATAsTREAM 序列化一个 包含XYZA 坐标的结构体
时间: 2024-03-05 20:52:00 浏览: 84
Qt 序列化函数和反序列化函数
可以通过重载 QDataStream 的 << 和 >> 运算符实现将包含XYZA坐标的结构体进行序列化和反序列化,具体的实现代码如下:
```
struct Point4D
{
double x;
double y;
double z;
double a;
};
QDataStream &operator<<(QDataStream &out, const Point4D &point)
{
out << point.x << point.y << point.z << point.a;
return out;
}
QDataStream &operator>>(QDataStream &in, Point4D &point)
{
in >> point.x >> point.y >> point.z >> point.a;
return in;
}
```
然后在需要将结构体进行序列化的地方,使用 QDataStream 对象来写入数据:
```
Point4D point;
QDataStream out(&data, QIODevice::WriteOnly);
out << point;
```
读取时,则使用 QDataStream 对象来读取数据:
```
Point4D point;
QDataStream in(&data, QIODevice::ReadOnly);
in >> point;
```
阅读全文