Доступ к структуре внутри структуры в QML

Ранее я опубликовал вопрос о том, как получить доступ к структурам в QML, и получил отличные ответы от некоторых замечательных людей, и теперь мне нужно знать, есть ли способ получить доступ к структуре внутри структуры в QML. Ниже приведен код:

// MyNewStruct

struct MyNewStruct {
 Q_GADGET
    float m_range;
    Q_PROPERTY(float range MEMBER m_range)
};

// MyStruct

struct MyStruct {
Q_GADGET
int m_val;
QString m_name1;
QString m_name2;
QString m_name3;
QString m_name4;

MyNewStruct m_newStr; //**new Struct declaration

Q_PROPERTY(int val MEMBER m_val)
Q_PROPERTY(QString name1 MEMBER m_name1)
Q_PROPERTY(QString name2 MEMBER m_name2)
Q_PROPERTY(QString name3 MEMBER m_name3)
Q_PROPERTY(QString name4 MEMBER m_name4)

Q_PROPERTY(MyNewStruct newStr MEMBER m_newStr) //**Currently getting error as != cannot be used
};

1 ответ

Решение

Ошибка, которую я получал в MOC, была вызвана тем, что оператор "! =" По-прежнему не определен.

Так как такого рода определения структуры требуются, когда мы создаем сложное приложение / модуль, я решил опубликовать этот вопрос здесь, а также нет подходящего документа.

Подходя к вопросу: я использовал простую загрузку оператора в своей структуре (поскольку здесь разрешены методы) Ниже приведен код:

struct MyNewStruct {
 Q_GADGET
    float m_range;
    Q_PROPERTY(float range MEMBER m_range)

    //Overload operator !=
    bool operator!=(const MyNewStruct & val)
    {
         //Do check with local members and return true/false
    }
};

Благодаря этому я смог получить доступ к MyNewStruct в QML. Надеюсь, это поможет другим.

Другие вопросы по тегам