问题标签 [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.
qt - 如何使用结构化 QDataStream 和序列化?
我有一个类似 CSS 的数据结构,如下例所示:
/* CSS 样式表文件 *.pss */
@include "otherStyleSheet.pss";
/* 注释 */ [propertyID="72100000"] { fillColor : #f3f1ed;
最小尺寸:5;线宽:3;}/* 球体 */ [propertyID="2352??"] { lineType : dotted; }
/* 正方形 */ [propertyID="2115??"] { lineType : thinline; }
/* 环 */ [propertyID="2315??"] { lineType : 粗线;
[hasInnerRing=true] { innerLineType : 细线;} }
所以我总是有一个根标签propertyID及其相应的属性,如fillColor和lineType等。
让我们假设,这个数据已经在一个..中结构化(属性是孩子等)让我们说:
当我在这样的 QStandardItemModel 中有上面的示例时,我怎样才能以序列化的方式有效地从文件写入该模型?(请不要使用 JSON,不要使用 XML 推荐)
假设我只是对文件中间的一个 propertyID 感兴趣,我可以在不解析前面的 propertyID 的情况下访问它吗?提前致谢!
c++ - 如何比较两个解析的文件并将差异附加到第一个?
假设我有两个 .dat 文件;一个在我的电脑上,另一个在地球的另一端——数据不断地通过QDataStream
.
数据以相同的方式解析——首先是某种 ID,然后是与该特定 ID 关联的对象。
过了一会儿——第一个可能看起来像这样(说明性的,语法上不正确):
但第二个还没有完全赶上。
是否可以同时获取两个文件——检测它们之间的差异,然后在第二个文件中缺少但第一个文件中存在的文件中“融合”?
显然,这可以通过编写一个函数来提取文件的内部结构、单独对内容进行分类、比较它们等等来实现——但是有没有办法通过只处理文件本身来实现这一点,而不必单独解析内容?
qt - 使用 Qdatastream 从套接字读取数据并写入文件
我需要通过 QTcpSocket 接收二进制数据(读取浮点数)并使用 QDatastream 将它们写入 Qfile。但是我在使用 QDataStream 时遇到了一些问题。如下,我只能用这种方式实现:</p>
我必须创建两个Qdatastream并在读取后将float写入Qfile。我的意思是,我可以通过一个Qdatastream直接读取流并将其写入文件以提高效率。
我对QDataStream的使用有一些盲点吗?任何人都可以帮助我解决我的问题吗?非常感谢。
qt - 如何将 QAbstractItemModel 序列化为 QDataStream?
我已经建立了一个 QAbstractItemModel 并用数据填充了它。我的 QTreeView 小部件正确显示该模型中的每个数据。
现在,我想将序列化的模型存储在二进制文件中(当然后来将该二进制文件加载回模型中)。那可能吗?
c++ - 用自己的类序列化 QHash?
我有一个QHash<const QString id, MyClass>
, 而 MyClass 只是一些带有 getter 和 setter 的 QString quint8 值的集合。MyClass 也有一个QDataStream &operator<<(QDataStream &ds, const MyClass &obj)
被覆盖的,那里。
要序列化我使用:
现在,我对另一个感到困惑:
我会知道那个序列化 QHash 的长度吗?
serialization - 如何在单个文件中序列化 QHash 和 QMap?
我有一个 QHash 和一个单独的 QMap。我可以单独序列化它们。但我想在一个文件中对它们进行序列化:
最后一次读取(此处为 myHash)始终为空。当我切换排序
所以这里 myMap 是空的。
如何同时序列化两者?
c++ - 使用数据流将 char 复制到 QbyteArray 包含一些额外的字节
问题概述:
操作系统:Ubuntu
我正在使用 qt 实用程序从远程机器接收视频数据(远程机器正在使用 gstreamer 发送实时数据)并将该数据写入端口 5000。
端口 5000 已绑定到另一个 gstreamer 实用程序。此实用程序侦听端口 5000 并将数据转换为视频流。显然事情并不完全正常,我无法观看视频。所以我有两个问题:
1)使用 Qt 实用程序,尽管端口绑定到 gstreamer 实用程序,但写入端口 5000 是否合法。
2)我正在使用 3rd 方库及其 api 从外部源接收数据。数据存储在字符数组中。如果我将其转换为 qbytearray 则 qbytearray 具有与 char 缓冲区相同的大小。例子
但是如果我使用 QDataStream ,那么 QbyteArray 会得到 4 个额外的字节。代码如下所示
我想知道为什么 QbyteArray 有额外的字符,我是否需要序列化数据以将其转发到端口 5000?
c++ - 从文件读取的数据比文件大小占用更多的内存
我通过以下方式将一些数据写入文件:
该文件最终等于 484MB。之后我循环阅读它:
当这个读取循环正在运行时,我看到在任务管理器中我的程序开始占用大约 1300MB 的内存,之后我收到“在文件 text\qharfbuzzng.cpp,第 626 行:内存不足”错误。我的问题是:程序开始占用 2 倍以上的文件内存是否正常,我应该分块读取它还是我做错了什么?
qt - 从 QDataStream 读取 QDateTime 给出 null
我将以下数据区域读入 QDataStream 对象:
这应该转换为日期/时间:25-05-2014 15:40:26
我正在尝试使用以下内容将其读入 QDateTime 变量:
相反,我及时得到空/空白。输出是:
c++ - 如何将 QDataStream 作为参数传递给 Qt5 中的信号
我正在编写一种方法来解析网络数据包的形式QByteArray
。它将使用提取一些值QDataStream
,然后希望将其传递QDataStream
给另一种方法以进行进一步处理(以避免QDataStream
稍后再制作另一个方法的开销)。
这是我的代码:
由于我使用的是信号,因此不鼓励通过引用传递,因为剩下QDataStream
的Q_DISABLE_COPY
唯一选择是通过指针传递。但是如果我决定通过指针传递它,我怎样才能有效地管理内存呢?(只删除一次)以后?