定義乙個結構體
struct mystruct
;
通過訊號槽傳遞該結構體
connect(this, signal(m_signal(mystruct)), this, slot(m_slot(mystruct)));
這樣做是行不通的,正確的做法:
通過q_declare_metatype宣告自定義的結構體
struct mystruct
;q_declare_metatype(mystruct);
然後以qvariant代替自定義的結構體
connect(this, signal(m_signal(qvariant)), this, slot(m_slot(qvariant)));
在發射訊號前,將自定義結構體打包為qvariant
mystruct mstruct;
qvariant data;
data.setvalue(mstruct);
emit signal_child(data);
在槽函式中,解析qvariant
mystruct mstruct = data.value();
Qt訊號槽傳遞自定義結構體
qt的訊號和槽可以傳遞int double等c 常用型別變數,也可以傳遞qvector qmap等qt的容器類 當然也可以傳遞qt定義的型別 那麼qt的訊號和槽如何傳遞自定義的結構體呢。首先在定義結構體的同時需要使用q declare metatype。通過這個巨集定義可以將自定義的型別註冊到qt的...
Qt5訊號槽傳遞自定義資料
本文介紹qt5傳遞自定義資料,非同步處理請求,如下 include 介面命令資料結構 typedef struct cmdrequest cmdrequest 命令處理結果資料結構 typedef struct rstresponse rstresponse 通過槽函式接收命令資料,非同步處理結果後...
Qt自定義訊號槽
qt自定義訊號槽,在控制台程式中實現 qt5 如下 qt5 include news h class news public qobject void send signals void new const qstring name private qstring m name reader.h i...