问题标签 [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.
python - 如何使用 QDataStream 在 Python 中打开 bin 文件
我有一个在应用程序中编码的 bin 文件,我需要访问该文件并将其转换为 csv 文件。我已经获得了文档,但不确定如何在 Python 中访问该文件的内容。
以下是有关如何序列化数据集的一些详细信息
Datasets.bin 是使用 Qt 的 QDataStream 序列化使用版本 QDataStream::Qt_4_7 序列化的 DataSet 类的列表。
我一直在查看 PyQt4 数据流文档,但似乎找不到任何具体示例。任何为我指明正确方向的帮助都会很棒
c++ - Qt QSharedMemory 和 QDataStream
我想使用 QSharedMemory 制作共享内存。所以,我正在尝试使用 QDataStream 读/写我的自定义类。但我不知道如何覆盖双指针(float **)。
(我使用双指针的原因是因为opencv cv::Mat,如果有比我想要的更好的方法,请推荐)
和 cpp 文件:
qt - 向/从文件写入/读取位域结构
我正在尝试将位字段结构写入文件然后读取它。
例如:
我试着这样写和读
但是在QDataStream::operator>>
我得到一个错误
错误:无法将位域 'a.teststruct::a' 绑定到 'quint16& {aka short unsigned int&}'
我可以用>>
运算符做什么,或者有其他方法可以将数据读取到我的结构中?
c++ - 如何使用 QDataStream 从 QTcpSocket 读取类对象?
我有一个由我定义的类,比如说MyClass
。我想通过QTcpSocket
. 这个答案建议使用 a QDataStream
,这显示了如何重载<<
and>>
运算符来实现这一点。
到目前为止,我已经<<
设法>>
为QDataStream
. 对于发送和接收部分,我遵循Marek R的这个答案的指示,它回答了一个或多或少与这个问题重复的问题。我发送对象的服务器代码似乎有效。但是,我无法弄清楚如何从.MyClass
QDataStream
但是,当我使用它时,我得到一个错误:
根据发送方法,我尝试如下:
但是,这会产生以下错误:
供参考,以下是发送代码,编译成功(直到读取代码工作才能检查):
我对网络概念不是很熟悉,所以我可能会遗漏一些微不足道的东西。
我该怎么做呢?
另外,quint16(0)
在块的开头发送的意义是什么?据称它可以作为块大小的指标,但它是如何做到的呢?无论块大小是多少,它都不是一样的吗?还是我完全误解了它的用法?
谢谢你。
c++ - 如何通过 QDataStream 发送类的指针成员?
我有一个用户定义的类,比如MyClass
. 假设它的定义如下:
我在哪里
和
和
我想将此类的一个对象发送到QTcpsocket
. 根据这个答案,我可以使用 a QDataStream
,并且在这个的帮助下,我实现了如下:
在类声明中,并正在考虑将其定义为:
由于我需要发送数据,我正在取消引用指针并发送它指向的数据。
这是正确的方法吗?
如果我确实以这种方式发送它,我将无法理解如何在接收端重新创建对象。我正在考虑:
对于int
指针,我可以创建一个new int
并将传入的值分配给它。但是类型的指针Base
呢?不知道是 typeDerived1
还是Derived2
.
我该如何处理?
如果这里没有解决方案,还有其他方法可以发送类对象吗?
谢谢你。
c++ - QDataStream 自定义写入 - 单行 vs 多行;
我将为我的 编写一个自定义运算符,我struct
想知道两者之间的性能是否有任何差异:
c++ - 序列化形状以保存和重新绘制
我有一个 QGraphicsScene 我正在绘制一个 QPainterPath,我需要能够保存形状,并在应用程序再次运行时重新绘制它。这是我如何绘制形状、简化版本和我的写入方法。
目前,我的文件在运行时永远不会被写入。
但除此之外,序列化这些数据以便我可以重建形状的正确方法是什么?
我以为我能够处理重新绘制,但我对序列化的理解不够好。
我要序列化积分吗?包含点的列表?
我的想法是,如果我序列化这些点,当我反序列化时,我将它们添加到一个列表中,我应该能够根据列表中每个点的位置重新创建形状;即位置 0 的点是 p1,点 1 的点是 p2,等等。但我无法做到这一点,因为无论如何都没有将任何内容写入文件。另外,我不完全确定首先对数据序列化有什么期望。
对此的任何帮助都会很棒。
编辑:根据反馈,我现在正在我的写方法中尝试这个
这编译得很好,即使我不完全确定我做对了,没有任何东西被写入文件,所以我假设我还在某个地方。
c++ - QTcpSocket::readAll() 为空
我是 Qt 新手,有点挣扎。我正在尝试使用 QTcpSocket 将字符串从客户端发送到服务器。
客户端:
服务器端:
在服务器端程序readyRead()
在接收到数据时进入,但是块为空,虽然在客户端tSock->write(block)
调用时块不为空......似乎是哪里的问题?我将不胜感激任何帮助。谢谢!
qt - 从网络请求模型数据
当在模型方法中rowCount()
并且columnCount()
我尝试使用从服务器检索数据时QTcpSocket
,模型会多次调用这些方法,但data()
之后不会调用。关联的QTableView
不显示任何内容。我用调试器检查过,它显示rowCount()
并columnCount()
返回有效数据。
该模型源自QAbstractTableModel
. 这是代码TcpTableModel::rowCount()
:
服务器使用相同的方法来处理请求。它接收MSG_REQUEST_ROWS_COUNT
然后发回MSG_REQUEST_ROWS_COUNT
一个包含行数的 int。
我的程序中这种行为的根源是什么?如果它的建模请求满足延迟,可能QTableView
无法正常工作。或者也许我应该使用完全不同的方法从服务器获取模型数据?
c++ - 带 QDataStream 的 TGA 读取标头
我正在尝试使用 Qt QDataStream 读取 TGA 文件头。我从具有固定类型的规范中具有以下结构:
我用 QFile 打开一个文件,然后用它构造一个 QDataStream :
问题在于我得到的宽度和高度:
我应该得到 1366 和 768。如果我 hexdump 我得到的文件:
这很奇怪,因为它在开始时有一个额外的字节,而在 和 之间的某个地方缺少另一个0x0002
字节0x0556
。
更新:
使用 fstream 有效,如果我错了,请纠正我,但我认为<<
操作符不能像我预期的那样工作(只读取填充结构变量所需的大小)。
使用 QDataStream::readRawData 也可以: