gpt4 book ai didi

c++ - QTextEdit中如何序列化和反序列化富文本?

转载 作者:太空狗 更新时间:2023-10-29 21:29:37 24 4
gpt4 key购买 nike

假设我有这样的结构:

class AAA
{
BBB bb_member;
double dbl_member;
....................
}

class BBB
{
int int_member;
QString QStr_member;

.................
QTextEdit m_textEdit;
}

对于 AAA,我定义了这个运算符:

QDataStream &operator<<(QDataStream &out, const AAA &aa)
{
out << aa.bb_member
<< aa.dbl_member;
return out;
}

QDataStream &operator>>(QDataStream &in, AAA &aa)
{
BBB bb_memb;
double dbk_memb;

in >> bb_memb
>> dbk_memb;

aa = AAA(bb_memb, dbk_memb);

return in;
}

然后我称之为:

QFile file("myFileName");
file.open(QIODevice::WriteOnly))
QDataStream out(&file);
out << AAA_object;

为了将 AAA 对象序列化为文件。

现在是问题。我应该如何为 BBB 类定义 QDataStream 运算符以序列化 BBB 对象(int、QString 和 QTextEdit 到达文本内容),同时调用 out << AAA_object; ???

最佳答案

QTextEdit是一个widget,把widget写到文件里意义不大,但是我们可以把widget的内容(QTextEdit::toHtml())写到文件里。从文件中读取时,我们可以创建一个新的小部件对象并使用文件的内容 (QTextEdit::setHtml()) 对其进行初始化。

我必须补充一点,与 QTextEdit 本身相比,将富文本数据存储在 BBB(作为 html QString)中可能是更好的设计。

关于c++ - QTextEdit中如何序列化和反序列化富文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4402558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com