0

这个问题我之前问过,刚刚得到的答案是有一个开放的错误。但这是一个真正需要的功能,我猜,每个编写或多或少严肃的应用程序的 Qt 程序员,很可能使用 QTextEdit 并且插入 QTextEdit 的数据被序列化和反序列化。因此,我认为这个问题非常重要,它对许多 Qt 开发人员很有用。所以我决定和优秀的程序员讨论如何实现operator<<(QDataStream, QTextDocument)。否则,我们应该等待 Qt 的人愿意自己做这件事:)。

所以说在 QTextEdit 我有一些图片和文字。在不同的片段中,文本具有不同的格式。如何获取这种 QTextEdit 的内容以及如何序列化,以便按原样显示?

编辑:我知道我可以通过使用返回 QTextDocument 的 documnet() 方法获取格式化的文本和图像。我也知道 QTextDocument 没有 operator<<(QDataStream, QTextDocument) 并且有写入此运算符的请求,但它仍然是打开的。所以请帮我写这个方法。我想我应该继承 QTextDocument 类,然后添加一个新成员(一个容器)来存储 QTextEdit 中存在的所有资源名称。然后我应该通过使用我定义的容器对它们进行迭代来序列化所有资源。这是一个很好的解决方案吗?如果是,那么你能帮我实施吗?如果没有,请给我一个更好的主意。

4

2 回答 2

2

你已经在四月问过这个问题:

Qt - 序列化/反序列化文本和图片

答案还是一样的。

  1. 等待 Qt 修复QTBUG-9258
  2. 自己执行序列化

根据您的需要,一种快速而肮脏的方法是使用QTextEdit::toHtml获取内容的 HTML 表示,然后对其进行 base64 编码。我不确定这将如何处理图片。

请不要转发相同的问题。

于 2010-07-15T18:09:07.587 回答
0

看这里:

如何在 QTextEdit 中序列化和反序列化富文本?

于 2010-12-14T11:51:48.333 回答