【qt】信號,使用自定義的結構作爲參數傳遞

錯誤 

 解決辦法:

方法1:註冊改向量

1、註冊位置:在第一次使用此類鏈接跨線程的signal/slot之前,一般在當前類的構造函數中進行註冊;
2、註冊方法:在當前類的頂部包含:#include <QMetaType>,構造函數中加入代碼:qRegisterMetaType<MyClass>("Myclass");
3、Myclass的引用類型需單獨註冊:qRegisterMetaType<MyClass>("Myclass&");
--------------------- 
作者:愛因 
來源:CSDN 
原文:https://blog.csdn.net/xbnlkdbxl/article/details/56842565 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

 方法2:改變信號連接方式

使用connect函數的Qt::DirectConnection參數

connect(A,SIGNAL(sendA(MyClass)),B,SLOT(getA(MyClass)),Qt::DirectConnection);

但此方法官方不推薦使用,認爲其不安全。

 方法3:針對結構體

在結構體的聲明後面加一句宏:

Q_DECLARE_METATYPE(CustomStruct)
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章