这个问题我之前问过,刚刚得到的答案是有一个开放的错误。但这是一个真正需要的功能,我想,每个编写或多或少严肃应用程序的 Qt 程序员,很可能使用 QTextEdit 并且在 QTextEdit 中插入的数据被序列化和反序列化。因此,我认为这个问题非常重要,并且它对许多 Qt 开发人员很有用。所以我决定和优秀的程序员一起讨论如何实现operator<<(QDataStream, QTextDocument)。否则我们应该等待 Qt 的人会好心地自己做这件事:)。
所以说在 QTextEdit 中我有一些图片和文字。在不同的片段中,文本具有不同的格式。如何获取这种QTextEdit的内容,如何序列化,才能原样显示?
编辑:我知道我可以使用返回 QTextDocument 的 documnet() 方法获取格式化的文本和图像。我也知道 QTextDocument 没有 operator<<(QDataStream, QTextDocument) 并且有写入此运算符的请求但它仍然打开。所以请帮我写这个方法。 我想我应该继承 QTextDocument 类,然后添加一个新成员(一个容器)来存储 QTextEdit 中存在的所有资源名称。然后我应该通过使用我定义的容器迭代它们来序列化所有资源。这是一个好的解决方案吗?如果是,那么你能帮我实现吗?如果不是,请给我一个更好的主意。
最佳答案
你已经在四月份问过这个问题了:
Qt - serialize/deserialaize text and picture
答案还是一样。
根据您的需要,一种快速而肮脏的方法是使用 QTextEdit::toHtml 获取内容的 HTML 表示形式。 , 然后 base64 encode it .我不确定这将如何处理图片。
请不要重新发布相同的问题。
关于c++ - 如何实现QTextDocument序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3254669/