问题标签 [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 投票
1 回答
1123 浏览

python - 如何使用 QDataStream 在 Python 中打开 bin 文件

我有一个在应用程序中编码的 bin 文件,我需要访问该文件并将其转换为 csv 文件。我已经获得了文档,但不确定如何在 Python 中访问该文件的内容。

以下是有关如何序列化数据集的一些详细信息

Datasets.bin 是使用 Qt 的 QDataStream 序列化使用版本 QDataStream::Qt_4_7 序列化的 DataSet 类的列表。

我一直在查看 PyQt4 数据流文档,但似乎找不到任何具体示例。任何为我指明正确方向的帮助都会很棒

0 投票
1 回答
201 浏览

c++ - Qt QSharedMemory 和 QDataStream

我想使用 QSharedMemory 制作共享内存。所以,我正在尝试使用 QDataStream 读/写我的自定义类。但我不知道如何覆盖双指针(float **)。

(我使用双指针的原因是因为opencv cv::Mat,如果有比我想要的更好的方法,请推荐)

和 cpp 文件:

0 投票
2 回答
1399 浏览

qt - 向/从文件写入/读取位域结构

我正在尝试将位字段结构写入文件然后读取它。

例如:

我试着这样写和读

但是在QDataStream::operator>>我得到一个错误

错误:无法将位域 'a.teststruct::a' 绑定到 'quint16& {aka short unsigned int&}'

我可以用>>运算符做什么,或者有其他方法可以将数据读取到我的结构中?

0 投票
1 回答
584 浏览

c++ - 如何使用 QDataStream 从 QTcpSocket 读取类对象?

我有一个由我定义的类,比如说MyClass。我想通过QTcpSocket. 这个答案建议使用 a QDataStream显示了如何重载<<and>>运算符来实现这一点。

到目前为止,我已经<<设法>>QDataStream. 对于发送和接收部分,我遵循Marek R的这个答案的指示,它回答了一个或多或少与这个问题重复的问题。我发送对象的服务器代码似乎有效。但是,我无法弄清楚如何从.MyClassQDataStream

Marek R 的 回答中,

但是,当我使用它时,我得到一个错误:

根据发送方法,我尝试如下:

但是,这会产生以下错误:

供参考,以下是发送代码,编译成功(直到读取代码工作才能检查):

我对网络概念不是很熟悉,所以我可能会遗漏一些微不足道的东西。

我该怎么做呢?

另外,quint16(0)在块的开头发送的意义是什么?据称它可以作为块大小的指标,但它是如何做到的呢?无论块大小是多少,它都不是一样的吗?还是我完全误解了它的用法?

谢谢你。

0 投票
0 回答
185 浏览

c++ - 如何通过 QDataStream 发送类的指针成员?

我有一个用户定义的类,比如MyClass. 假设它的定义如下:

我在哪里

我想将此类的一个对象发送到QTcpsocket. 根据这个答案,我可以使用 a QDataStream,并且在这个的帮助下我实现了如下:

在类声明中,并正在考虑将其定义为:

由于我需要发送数据,我正在取消引用指针并发送它指向的数据。

这是正确的方法吗?

如果我确实以这种方式发送它,我将无法理解如何在接收端重新创建对象。我正在考虑:

对于int指针,我可以创建一个new int并将传入的值分配给它。但是类型的指针Base呢?不知道是 typeDerived1还是Derived2.

我该如何处理?

如果这里没有解决方案,还有其他方法可以发送类对象吗?

谢谢你。

0 投票
1 回答
92 浏览

c++ - QDataStream 自定义写入 - 单行 vs 多行;

我将为我的 编写一个自定义运算符,我struct想知道两者之间的性能是否有任何差异:

0 投票
1 回答
445 浏览

c++ - 序列化形状以保存和重新绘制

我有一个 QGraphicsScene 我正在绘制一个 QPainterPath,我需要能够保存形状,并在应用程序再次运行时重新绘制它。这是我如何绘制形状、简化版本和我的写入方法。

目前,我的文件在运行时永远不会被写入。

但除此之外,序列化这些数据以便我可以重建形状的正确方法是什么?

我以为我能够处理重新绘制,但我对序列化的理解不够好。

我要序列化积分吗?包含点的列表?

我的想法是,如果我序列化这些点,当我反序列化时,我将它们添加到一个列表中,我应该能够根据列表中每个点的位置重新创建形状;即位置 0 的点是 p1,点 1 的点是 p2,等等。但我无法做到这一点,因为无论如何都没有将任何内容写入文件。另外,我不完全确定首先对数据序列化有什么期望。

对此的任何帮助都会很棒。

编辑:根据反馈,我现在正在我的写方法中尝试这个

这编译得很好,即使我不完全确定我做对了,没有任何东西被写入文件,所以我假设我还在某个地方。

0 投票
3 回答
1774 浏览

c++ - QTcpSocket::readAll() 为空

我是 Qt 新手,有点挣扎。我正在尝试使用 QTcpSocket 将字符串从客户端发送到服务器。

客户端:

服务器端:

在服务器端程序readyRead()在接收到数据时进入,但是块为空,虽然在客户端tSock->write(block)调用时块不为空......似乎是哪里的问题?我将不胜感激任何帮助。谢谢!

0 投票
0 回答
190 浏览

qt - 从网络请求模型数据

当在模型方法中rowCount()并且columnCount()我尝试使用从服务器检索数据时QTcpSocket,模型会多次调用这些方法,但data()之后不会调用。关联的QTableView不显示任何内容。我用调试器检查过,它显示rowCount()columnCount()返回有效数据。

该模型源自QAbstractTableModel. 这是代码TcpTableModel::rowCount()

服务器使用相同的方法来处理请求。它接收MSG_REQUEST_ROWS_COUNT然后发回MSG_REQUEST_ROWS_COUNT一个包含行数的 int。

我的程序中这种行为的根源是什么?如果它的建模请求满足延迟,可能QTableView无法正常工作。或者也许我应该使用完全不同的方法从服务器获取模型数据?

0 投票
1 回答
193 浏览

c++ - 带 QDataStream 的 TGA 读取标头

我正在尝试使用 Qt QDataStream 读取 TGA 文件头。我从具有固定类型的规范中具有以下结构:

我用 QFile 打开一个文件,然后用它构造一个 QDataStream :

问题在于我得到的宽度和高度:

我应该得到 1366 和 768。如果我 hexdump 我得到的文件:

这很奇怪,因为它在开始时有一个额外的字节,而在 和 之间的某个地方缺少另一个0x0002字节0x0556

更新:
使用 fstream 有效,如果我错了,请纠正我,但我认为<<操作符不能像我预期的那样工作(只读取填充结构变量所需的大小)。

使用 QDataStream::readRawData 也可以: