QObject::connect: Cannot queue arguments of type ‘QList’
QObject::connect: Cannot queue arguments of type 'QList<QString>'
(Make sure 'QList<QString>' is registered using qRegisterMetaType().)
使用信号和槽时,QList无法当做参数被传递,报错“QList”要确认在“ qRegisterMetaType()”里被注册了。
说白了,就是qt 无法识别QList这种数据类型,需要通过函数“qRegisterMetaType()”告诉系统。
解决策略:
1-添加头文件
请注意,在使用qRegisterMetaType()注册自定义类型之前,确保已经包含了相关头文件,并且只需在程序中注册一次即可。
#include <QMetaType>
2-添加头文件
在连接信号和槽之前注册元类型,示例如下:
qRegisterMetaType<QList<QString>>("QList<QString>");
通过调用qRegisterMetaType()函数注册元类型,告诉Qt如何处理这种特定的数据类型。在注册后,就可以正常地使用该类型作为信号或槽的参数了。