【qt】訊號,使用自定義的結構作為引數傳遞
阿新 • • 發佈:2018-12-04
錯誤
解決辦法:
方法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)