Q_DECLARE_METATYPE(A::Test) 今天遇到了莫名其妙的编译错误,原因是我用QVariant设置一个自定义指针类型的Data,这时就需要Q_DECLARE_METATYPE(Type*)了,如果设置了Q_DECLARE_METATYPE(Type),Qt只能识别Type类型,而未能识别其指针类型!!! 另外自定义类型中一定要有默认构造函数,如果已经显式的定义了带有无默认参数...
网上大部分解答都是添加:Q_DECLARE_METATYPE(type) 可我的代码中明明就有:Q_DECLARE_METATYPE(UserTest) 三、问题解决 非常感谢 BloodRose 给出的解答 今天遇到了莫名其妙的编译错误,原因是我用QVariant设置一个自定义指针类型的Data,这时就需要Q_DECLARE_METATYPE(Type*)了,如果设置了Q_DECLA...
解决方法嘛,当然很简单:参照Q_DECLARE_METATYPE的宏定义,自己把它展开,编译器就不会再犯傻了。 [cpp]view plaincopy QT_BEGIN_NAMESPACE template <> struct QMetaTypeId< QMap<QString, bool> > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = Q_BA...
今天在Qt里使用树控件的时候,绑定自定义节点取数据会报以下错误: Type is not registered,pleaseusethe Q_DECLARE_METATYPE macro to make it known to Qt'smeta-object system 用以下方法解决: Q_DECLARE_METATYPE(你的自定义数据类名) 即可。
QVariant 引发的 Q_DECLARE_METATYPE 错误 error: C2338: Type is not registered, please use the Q_DECLARE_METATYPE macro to make it known to Qt's meta-object system QVariant setValue的时候,如果把一个枚举类型直接赋值,会出现上述错误。 static_cast<int>转换后OK。
报错代码 1 2 3 const QCameraInfo &cameraInfo ... QVariant::fromValue(cameraInfo) 原因 QVaiant 不能识别自定义类型和其他非 QMetaType 内置类型, 而 QCameraInfo 是非 QMetaType 内置类型,因此使用QVariant::fromValue(cameraInfo)之前,需要使用Q_DECLARE_METATYPE宏对 QCameraInfo 进行声明。
。也就是说,QVariant提供了一组预定义的构造函数。不能使用Q_DECLARE_METATYPE宏添加新的宏。
Q_DECLARE_METATYPE 是一个Qt宏,用以通知Qt的反射系统关于自定义类型的存在。当使用此宏声明一个类型后,该类型可以在QVariant中使用。QVariant是Qt中用于存储可以包含任意类型的一个“通用”值容器。 Qt 元对象系统不知道非Qt类的存在,因此如果要在QVariant中存储自定义类型,就需要用这个宏声明它。此宏必须在全局...
qDeclareMetatype的基本语法如下: ```cpp qDeclareMetatype(Type) ``` 其中,Type是要注册的自定义数据类型。在使用该宏之前,必须包含相应类型的头文件。 2.2示例 假设我们有一个名为CustomObject的自定义类,我们希望在Qt的信号与槽机制中使用它。首先,我们需要在CustomObject类的头文件中添加qDeclareMetatype宏: ...
针对你遇到的问题“type is not registered, please use the q_declare_metatype macro to make it known to Qt's meta-object system”,我们可以从以下几个方面进行解答和修复: 1. 理解q_declare_metatype宏的作用 q_declare_metatype宏用于在Qt的元对象系统中注册一个自定义类型,使得该类型可以通过Qt的信号...