我有一個自定義類型的屬性。重載qt屬性
class foo : public QObject {
Q_OBJECT
Q_PROPERTY(Custom x READ x WRITE set_x)
public:
void set_x(Custom &x) { /*whatnot*/}
}
QJson有效地調用下面的動態分配:
((QObject*)&foo_instance)->setProperty("x", QVariant(QString("something-from-json")))
返回false,如文檔講解:
如果該值不符合屬性的類型兼容的,財產沒有改變,並返回false。
我該如何將它填充到我的自定義值中?清楚地定義一個側面功能void set_x(QString)
或void set_x(QVariant)
不可能工作,因爲屬性系統將不知道這個訪問器。
此外,檢查類型兼容性在哪裏? - 程序控制從未達到
int foo::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
由元對象編譯器生成的函數..
我怎樣才能讓這些類型Custom
兼容嗎?
對接受的答案的評論實際上爲我指出了。 – qdot