QT----不同线程中信号发送了槽函数没反应QObject::connect: Cannot queue arguments of typeXXX
问题描述
代码上绑定没有问题,但是debug时子线程中信号能够发送,但是主线程中的槽函数没有执行,同时日志里也有个不算报错的东西,
QObject::connect: Cannot queue arguments of type 'QMap<QString,QString>
这里的QMap<QString, QString>
正好是我信号传递的参数.
问题解决
QMap<QString, QString> 作为信号参数时,必须是已注册的元类型,否则 Qt 无法在不同线程之间传递该信号。也就是说qt不认识这个参数,注册一下就行.
在main.cpp
里添加上这样一行代码就行qRegisterMetaType<QMap<QString, QString>>("QMap<QString, QString>");