QObject::connect: Cannot queue arguments of type "QHash<int,pMsg>",(Make sure "QHash<int,pMsg>" is registed using qRegisterMetaType().)查找到原因为:线程中信号和槽函数的传递,参数是默认放到队列中去的,但是这个自定义的参数结构,不是QT自带的参数结构,不能识别。解决方法有两点:(1)将不识别的参数结构进行注册,让QT能够识别。A 包含头文件:#includeB 在构造的类的构造函数中调用其方法完成注册:qRegisterMetaType<QHash<int,pMsg>>("QHash,pMsg>");(2)直接调用对方槽函数,不保存参数,直接传递。connect(pLink->module,SIGNAL(sendReportToMainWithHash(QHash<int,pMsg>,QString)),this,SLOT(receiveReportFromIecServiceWithHash(QHash<int,pMsg>,QString)), Qt::DirectConnection);此种方法未测试,且官方认为这样做有风险,不推荐。