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

c++ - QDatastream 太慢?

我正在尝试使用 QSharedmemory 在两个进程之间传递多个图像(实际上是一个视频)。目前我正在序列化 QImages 的 QVector 并将其复制到内存中。这可行,但序列化步骤需要大约 99% 的时间。我怎样才能以独立于平台的方式更快地做到这一点?

我的发送代码:

0 投票
2 回答
774 浏览

c++ - 计算 Qt5 中写入 QDataStream 的字节数

在我的代码中,我正在准备一些数据以使用QDataStream. 在准备过程中,我想知道当时准备了多少字节。我怎样才能做到这一点?

例子:

0 投票
1 回答
874 浏览

qt - 调整 QDataStream

我有一个程序,它在大纲中处理来自文件的二进制数据。

代码大纲如下:

该文件混合了二进制和文本数据。使用 QDataStream 读取文件内容:

我可以将 QDataStream 中的数据读取为各种数据类型。例如

好,易于。总体而言,我逐字节读取文件数据,直到达到代表分隔符的某些值,例如 0x68 0x48。在这一点上,接下来是接下来的几个字节,它们告诉我接​​下来是什么类型的数据(浮点数、字符串、整数等)并酌情提取。

因此,数据被处理(大纲),如:

一些嵌入的数据可能会被压缩,所以我们使用

QDataStream 的便利性使得读取数据变得容易,既可以映射到特定类型,也可以轻松处理字节序,但它似乎以牺牲速度为代价。处理是递归的事实使问题更加复杂 - 正在读取的数据本身可能包含嵌入的文件数据,需要以相同的方式读取和处理。

有没有更快的替代方案,如果,那么如何以同样的方式处理 Endianess?

0 投票
1 回答
145 浏览

c++ - 更正覆盖 QDataStream 运算符和链接问题

我需要覆盖 QDataStream 的 >> 和 << 运算符。这是我的代码:

成功编译后,我得到一些像这样的误解:

我有两个问题:

  1. 我必须如何定义 << 和 >> 运算符才能正确工作;
  2. 如果此代码正确,如何修复链接错误。


Tnx 寻求答案。

0 投票
0 回答
902 浏览

c++ - 使用 QUdpSocket 和 QDatastream 发送 UDP 数据报

该程序能够发送 .txt 文件。但是任何其他文件类型都会损坏。我认为这与我存储帧的数据类型有关。对不起,我只是不知道我的问题可能出在哪里。

我是 QT 和 C++ 的新手。我必须使用 QUdpSocket 将任何文件通过网络发送到另一台计算机。然后,这台计算机应该以正确的顺序重新组合数据报并将其保存为文件。(QFiles 必须用序列号标题分解成段,并根据这些数字重新组合)。段与它们的序列号一起存储在 QByteArray 数组中。

然后通过 qudpsocket 发送 QByteArray 数组

重组代码的工作方式如下

收到所有帧后

0 投票
1 回答
131 浏览

c++ - QDataStream 正在变为只读

我有两个名为 IPCBase 和 DispatchData 的类。现在我想将 QDataStrean Object drom IPCBase 传递给 DispatchData。首先,我尝试使用 Connect Statement 直接发送它。但它给出了错误,例如 QDataStream 对象未在 QRegisterMatatype 中注册。

编辑::我也参考了这个链接

为 Qt 注册自定义类型时,何时、何地以及为何使用命名空间

所以我做了类似的事情

然后在另一个类中连接语句(DispatchData)

onIPCDataReceived Slot

然后它会来到这里

0 投票
1 回答
3338 浏览

c++ - 通过 QDataStream 读取/写入字节数组

我有字节图像数组我想将此字节数组写入另一个字节数组,并在第二个字节数组上添加一些另一个值,我正在使用此代码,但我认为有问题

当我跟踪ds>>code它总是有 0 值但实际上它必须有 20 值并且我使用了 ds.resetStatus(); 但它再次返回 0 值

0 投票
1 回答
3420 浏览

arrays - QPixmap.loadFromData() does not load image from QByteArray

I'm creating a socket-based program to send a screenshot from one user to another user. I need to convert a screenshot to a byte array before sending. After I convert my screenshot to a QByteArray I insert 4 bytes to the beginning of the array to mark that it is a picture (it is the number 20 to tell me it is a picture and not text or something else).

After I send the byte array via a socket to other user, when it is received I read the first 4 bytes to know what it is. Since it was a picture I then convert it from a QByteArray to QPixmap to show it on a label. I use secondPixmap.loadFromData(byteArray,"JPEG") to load it but it not load any picture.

This is a sample of my code:

0 投票
2 回答
331 浏览

c++ - 从 QTableWidget 序列化时 CSV 文件中不需要的字符

我正在尝试从 a 读取数据QTableWidget,并将它们保存在 CSV 文件中。

保存在文件中的值是正确的,但是对于每一行的第一列,开头都有一个不需要的字符。

这是我的代码:

保存的文件如下所示:

我正在使用 Qt 5.4.0。

在这里的任何帮助将不胜感激。

0 投票
2 回答
299 浏览

qt - 将 00001010 写入 Qfile 会在前面添加另一个 Byte

我正在 Qt 中编写一个工具,我想在其中将二进制数据写入文件。一切正常,除非我试图将十进制值“10”(二进制的 0000 1010)写入文件。在这种情况下,我在另一个字节前面得到一个值为“0000 1101”的附加字节。我在文件中写入多少数据并不重要,只要我写一个 10,我就会得到另一个字节。

我将其分解为以下代码:

我的文件中的输出是:

这三个 0x0d 字节是不需要的。在将“9”或“11”写入文件时,我没有得到它们。我的想法不多了。谁能告诉我我做错了什么?