Qt 问题,我如何将自己的QObject派生的自定义类返回为“;QVariant”;?

Qt 问题,我如何将自己的QObject派生的自定义类返回为“;QVariant”;?,qt,Qt,实现派生的“QAbstractListModel::data”方法 Q_DECLARE_元类型(myType);甚至不编译…。返回自定义对象会导致编译错误 如何做到这一点?为什么不将其作为QObject放在QVariant中?qVariantFromValue(youObjectPointer) 这将使元类型系统知道MyType* 如果要传递对象本身,请声明尝试的方式,但请确保正确定义类型: Q_DECLARE_元类型:此宏使QMetaType知道类型类型,只要它提供公共默认构造函数、公共复制构

实现派生的“QAbstractListModel::data”方法

Q_DECLARE_元类型(myType);甚至不编译…。返回自定义对象会导致编译错误


如何做到这一点?

为什么不将其作为QObject放在QVariant中?qVariantFromValue(youObjectPointer)

这将使元类型系统知道
MyType*

如果要传递对象本身,请声明尝试的方式,但请确保正确定义类型:

Q_DECLARE_元类型:此宏使QMetaType知道类型类型,只要它提供公共默认构造函数、公共复制构造函数和公共析构函数。在QVariant中,需要将该类型用作自定义类型


它未编译--/Library/Frameworks/QtCore.framework/Headers/qmetatype.h:222:错误:“qt\u metatype\u id”不是“QMetaTypeId”的成员。是否将其添加为指针?请记住,不能复制QObject派生类。在任何地方都找不到“Q_DECLARE_METATYPE”。如果我声明“Q_declare_METATYPE(mytype);”或“Q_declare_METABURGER(mytype);”却找不到,我会得到相同的生成错误。它是在哪个*.h文件中定义的?
QVariant::fromValue<QObject *>(object);
typedef MyType * MyTypeStar
Q_DECLARE_METATYPE(MyTypeStar);