解决方法:在调用connect之前,通过 qRegisterMetaType() 注册你connect函数里对象的类型代码如下:
typedef QString CustomString;//你自己定义的类型
qRegisterMetaType<CustomString>(“CustomString”);//注册你自己的类型
connect(…)//之后connect就不再出现该提示错误
扩展:
Qt meta-object system包含对象间相互通信(信号和槽),运行类型信息和动态属性系统。自定义类型class的对象想要用到这些系统里的功能,例如信号和槽的connect,就必须先在meta-system里注册自定义类型。QMetaType类管理了meta-object system里命名的类型,帮助管理QVariant,以及信号和槽的连接。注册的方式有两种:
1.Q_DECLARE_METATYPE() 利用其声明新类型,使新类型可以在QVariant和其他的模板基类函数可用;
2.qRegisterMetaType()调用其函数可使得新类型在非模板基类函数可用,队列式的信号和槽的连接。
解决:QObject::connect queue arguments of type ‘xxxx’,Make sure ‘xxxx’ is registered using qRegister
最新推荐文章于 2024-12-20 11:16:34 发布
博客介绍了在Qt中解决connect函数提示错误的方法,即调用connect前通过qRegisterMetaType()注册对象类型。还扩展说明了Qt meta - object system,指出自定义类型对象使用该系统功能需先注册,介绍了Q_DECLARE_METATYPE()和qRegisterMetaType()两种注册方式。
1790

被折叠的 条评论
为什么被折叠?



