问题标签 [qdatastream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1715 浏览

qt - 保存和加载矢量Qt 和 OpenCV

我正在使用不支持更新的FisherFaces识别器在Qt和openCV中进行人脸识别,因此我必须保存人脸数据库以在任何更改后重新训练识别器。
这是我的保存代码:

这是用于加载:

问题是我从文件中读回的不是我保存的
已保存 加载

那么这段代码到底有什么问题(希望不是全部)?
有没有更好/更简单的方法来保存向量?
编辑:
感谢Marek_R,转换部分已修复,但现在使用 QDataStream 保存和加载是问题:
已保存 加载
那么是什么导致了这些行?
编辑:
我已经尝试过:
公开QimgVect和元素化 QDataStream 部分:MatVect-> QimgVectQimgVect->MatVect并且它确实工作正常,但是在添加 QDataStream 之后:MatVect-> QimgVect->QDataStreamQDataStream->QimgVect->MatVect i得到上面显示的结果(垂直白线)。
编辑
从 qdatastream 读取后RGB32Indexed8给出以下结果:
在此处输入图像描述

0 投票
2 回答
4676 浏览

qt - 如何将数据作为 QByteArray/QDataStream 从服务器发送到客户端

在 Qt 的 fortuneserver 示例中,方法 发送了一个 QString sendFortune()。因此从 QStringList 中选择一个 QString fortunes

是否也可以发送其他类型的数据,如文件、图像或多个字符串?还是只能发送一个字符串?

我的第二个问题:作为 QByteArry 发送数据有什么好处,为什么我必须(quint16)通过设置 QDataStream 来定义?

0 投票
1 回答
2293 浏览

python - 如何在 PySide 和 Python 3.X 中将字节写入 QDataStream?

在它的Qt文档中QDataStream

QDataStream 类提供二进制数据到 QIODevice 的序列化。

所以这就是我想要做的。我想将 Python 3.X 上 PySide 中的字节发送到QDataStream.

writeRawData但是期望unicode作为输入。

给出一个TypeError

此外,PySide (1.2.2) 没有实现 from writeBytesQDataStream

那么,如何QDataStream在 PySide 和 Python 3.X 中通过 a 发送二进制数据?


背景:最后我想QSocket通过a方便地将二进制数据发送到a QDataStream,并且我想在使用之前对其进行压缩zlib

0 投票
1 回答
184 浏览

c++ - qt c ++中反序列化地图的大小增加

我已经使用 QDataStream 序列化地图并将对象写入文件。

当我再次反序列化并将地图加载到内存中时,序列化文件大小为1.5mb,内存消耗为300mb。我使用相同的 QDataStream 进行反序列化。

你能告诉我为什么反序列化写入磁盘文件的 1.5mb 序列化对象在内存中占用 300mb 的原因。

序列化:

反序列化:

我已经使用 MEMORYSTATUSEX windows 库检查了内存消耗。反序列化后,消耗的内存为 300 mb。

谢谢您的帮助。

0 投票
0 回答
1257 浏览

c++ - Big Endian 中的 QDataStream 和字节顺序

我有一个通过网络发送图像的程序。我手动创建像素(使用QRgb类)并将它们插入到QDataStream. quint16当每个像素有 16 或 32 位(我可以插入或)时,这很容易quint32,但在 RGB888(每像素 24 位)中,我必须使用三个quint8变量。但我不确定字节的顺序何时QDataStream有:

我应该按该顺序插入以便稍后正确读取此流吗?

编辑:我知道BigEndian当我只使用时设置并不重要,quint8但我想按这样的顺序排列颜色,就像 Qt 进行字节处理(quint32setByteOrder)的情况一样。

0 投票
1 回答
422 浏览

c++ - 当 QDataStream 没有这种方法时,为什么可以将 QVariant 写入 QDataStream?

我可以毫无问题地将 QVariant 写入 QDataStream 并从 QDataStream 读取 QVariant。

我的问题是,当 QDataStream 没有方法时,上面的代码如何编译和正常工作operator<<(QVariant v)

0 投票
1 回答
585 浏览

c++ - QDataStream 无法序列化数据

我正在尝试遵循此处的教程并序列化 Qt 对象。这是我的代码:

当我运行这个程序时,文件会在我的桌面上创建,但是它的大小是 0 kB,它是空白的。自然,当我尝试这个时:

我在str. 我究竟做错了什么?如果有任何帮助,我正在使用Qt Creator 3.1.1基于Qt 5.2.1.

0 投票
1 回答
3546 浏览

c++ - 读写 QByteArray 到 QDataSteam

QByteArray我在发送through时遇到了问题QDataStream。我创建了一个用于存储序列化消息以通过套接字发送的类,类如下所示:

为了测试操作员QDataStream & operator>>QDataStream &operator<<我创建了 testunit。

要正确运行此测试,您需要TextMessage上课

我的问题是当我运行void Serialization_test::serializedMessageFromArray()测试时挂断或失败并显示消息

更重要的是,调试读写运算符表明out.writeRawData(message.m_dataArray.data(), message.m_dataArray.length());写入相同数量的数据,即读入in.readRawData(dataArray.data(), dataLength);。我不太确定发生了什么。我将不胜感激

0 投票
1 回答
123 浏览

c++ - 成员之间的 QDataStream 分配

现在的想法是,当调用 init() 时,应该打开文件并导航到数据开始的位置。现在,每次调用 getData() 时,都应该从文件中读取一大块字节。

伪代码如下所示:

我理解为什么会发生这种情况,因为readininit是在本地声明的。但是我应该如何分配数据流以便从中断getData的地方init继续?下一个getData可以从上一个中断的地方继续。调用序列如下所示:

0 投票
2 回答
2139 浏览

c++ - 将 QImage 保存到 QBuffer

我正在做这样的事情:

选项1:

选项 2:

选项 1 很慢,我不确定选项 2 是否正确?