QT訊號傳結構體

2021-10-06 08:56:41 字數 794 閱讀 2543

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 註冊之後就可以正常的進行訊號和...