カスタムタイプのプロパティがあります。
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")))
Qt に記載されているように、false を返します。
値がプロパティの型と互換性がない場合、プロパティは変更されず、false が返されます。
これをカスタム値に組み込むにはどうすればよいですか? プロパティシステムはこのアクセサーを認識しないため、副次機能を明確に定義するvoid set_x(QString)
か、機能しvoid set_x(QVariant)
ない可能性があります。
また、型の互換性はどこでチェックされますか? - プログラム制御が届かない
int foo::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
メタオブジェクト コンパイラによって生成される関数。
Custom
これらのタイプと互換性 を持たせるにはどうすればよいですか?