讓QVariant認識自定義資料型別

2021-09-29 09:12:40 字數 650 閱讀 9517

這裡我們使用下面這個struct來做說明(這裡不管是struct還是class都一樣):

struct player 

;

為了能在qvariant中使用自定義資料型別做,需要使用q_declare_metatype()來向qt的元系統宣告這個自定義型別。如下列所示:

struct player 

; q_declare_metatype(player);

在作為qvariant傳遞自定義資料型別時,需要使用qvariant::fromvalue()或者qvariantfromvalue:

player player; 

object->setproperty("property", qvariant::fromvalue(player));

為了更方便一點,你可以在自定義型別中定義乙個qvariant() 型別轉換符:

struct player 

};

這樣我們便可以像下面這樣使用了:

player player; 

object->setproperty("property", player);

QVariant 與 自定義型別 的轉換

在使用vc delphi編寫使用者介面程式的時候,經常會把物件與控制項的data域進行繫結,便於程式執行中讀寫提高效率。然而在qt程式設計中怎麼實現這個功能呢?比如將乙個使用者自定義的結構體與qcombobox控制項的data繫結?qt的聯機幫助做的實在是差強人意,示例 太少了。除錯了半天,看到這篇...

自定義資料型別使用QVariant轉換的方法

qvariant型別的放入和取出必須是相對應的,你放入乙個int就必須按int取出,不能用tostring qt不會幫你自動轉換。資料核心無非就是乙個 union,和乙個標記型別的type 傳遞的是整數 123,那麼它union儲存整數123,同時type標誌int 如果傳遞字串,union儲存字串...

讓Datagridview支援自定義回車事件

vb.net中的datagridview控制項,無法對單元格的回車事件,進行繫結,這對程式設計師來說,是個 煩。vb.net中datagridview的回車事件預設是單元格下移動的功能,無法改變。下面提供一種方法,實現對datagridview中的回車事件進行繫結。首先過載系統事件,遮蔽原來的事件,...