609 B
609 B
Qt有許多UI元件都可以另外設定相依的「資料」,例如QCombobox,這樣我們就不必老是依賴選項的文字來做許多麻煩的處理。
例如,QCombobox.addItem()可以夾帶一個QVariant,這個QVariant就可以夾帶一個pointer。
要讓QVariant支援std::shared_ptr的方式很簡單,只要在你程式的最上方加入你要使用的type就可以,例如,我要支援我自己的class AwSentinelDevice,就這樣寫:
#include <memory>
Q_DECLARE_SMART_POINTER_METATYPE(std::shared_ptr);
Q_DECLARE_METATYPE(std::shared_ptr<AwSentinelDevice>);