背景:一個線程通過signal-slot發送PVCI_CAN_OBJ類型的值到主線程中,
錯誤提示:
QObject::connect: Cannot queue arguments of type 'PVCI_CAN_OBJ'
(Make sure 'PVCI_CAN_OBJ' is registered using qRegisterMetaType().)
原因:在線程中通過signal-slot傳遞信息時,參數默認放到隊列中的,但PVCI_CAN_OBJ是自定義的參數,不是Qt自帶的參數結構。
解決方法:
將不識別的參數結構進行注冊,讓Qt能夠識別。
包含頭文件
#include <QMetaType>
在構造函數中調用其方法完成注冊:
qRegisterMetaType<PVCI_CAN_OBJ>("PVCI_CAN_OBJ");//注冊PVCI_CAN_OBJ類型
