gpt4 book ai didi

qt - 如何注册以下数据类型以允许序列化?

转载 作者:行者123 更新时间:2023-11-30 23:49:22 24 4
gpt4 key购买 nike

我正在使用 QJson序列化 QObject - 派生类。我能够毫无问题地序列化类本身,但是当涉及到它的一个成员时,我遇到了一些麻烦。

该类名为 CProject它包含一个属性 files定义为:

QList<CProjectFile> files;

序列化 CProject 的实例时,我在控制台中收到一条消息:

QMetaProperty::read: Unable to handle unregistered datatype 'QList<CProjectFile>' for property 'CProject::files'



我在某处读到我必须注册数据类型,所以我在 CProject 的声明之后添加了以下内容:
Q_DECLARE_METATYPE(QList<CProjectFile>)

......当那什么也没做时,我补充说:
qRegisterMetaType< QList<CProjectFile> >();

没有任何工作。我究竟做错了什么?

最佳答案

我不知道 QJson 是如何工作的,但也许它需要流运算符。在声明 CProjectFile 类后尝试如下

class CProjectFile
{
...
};

Q_DECLARE_METATYPE(CProjectFile)

qRegisterMetaType<CProjectFile>("CProjectFile");//Do this if you need signal/slots

qRegisterMetaTypeStreamOperators<QList<CProjectFile> >("CProjectFileList");

另见 QT Doc对于流操作符

关于qt - 如何注册以下数据类型以允许序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6210877/

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