写了一个这样的信号
void caculateReady( QList adds, QList hotV, QList coolV);
编译时正常,运行时了现错误
Object::connection: Cannot queue arguments of type ‘QList’
(Make sure ‘QList’ is registered using qRegisterMetaType().))
原因:自定义的数据类型作为信号槽参数传递的时候,需要使用 qRegisterMetaType() 函数对该参数进行注册
代码修改如下:
//添加文件引用
#include
//注册参数类型
qRegisterMetaType<QList > (“QList”);
这样,这个QList就可以作为信号参数来传递了
F1出现的help文档中的定义为:
int qRegisterMetaType ( const char * typeName )
//实例
qRegisterMetaType(“MyClass”);
qRegisterMetaType的返回值为自定义类型的ID