1.先建乙個結構體,( 最好在建在全域性類中,#include "global_variable.h"然後那個類要用他,寫標頭檔案就行了)
struct coordinates
;
q_declare_metatype(coordinates)//註冊結構體
2.作為訊號輸出時,不能直接傳結構體,要先包裝一下結構再傳出去; 接收時,也要拆開包裝,才能拿到資料;
a.先包裝
coordinates t_coordinates;//結構體
qvariant qv_distance; //qt中可以裝任何資料的類
qv_distance.setvalue(t_coordinates);//打包
emit sigcirclepoint(qv_distance);//傳送
b.拆包裝
void slot( qvariant qv_distance ){
coordinates t_point = qv_distance.value();
coutconnent(傳送 類,sigcirclepoint(qv_distance),接收類,slot( qvariant qv_distance ) );
Qt 訊號槽傳遞結構體引數
1 需要註冊結構體引數,在結構體中宣告結束的地方加上結構體註冊。typedef struct s exceptionnotifydata exceptionnotifydata q declare metatype exceptionnotifydata 2 訊號定義 signals void si...
Qt訊號槽傳遞自定義結構體
qt的訊號和槽可以傳遞int double等c 常用型別變數,也可以傳遞qvector qmap等qt的容器類 當然也可以傳遞qt定義的型別 那麼qt的訊號和槽如何傳遞自定義的結構體呢。首先在定義結構體的同時需要使用q declare metatype。通過這個巨集定義可以將自定義的型別註冊到qt的...
Qt訊號與槽傳參
qt出現qobject connect cannot queue arguments of type 的解決方法 一般出現這種情況都是自定義的型別進行型號槽連線的時候出現的,使用 假設自定義的型別是myclass 使用qregistermetatype myclass 註冊之後就可以正常的進行訊號和...