在 QML 中访问结构内部的结构

Accessing Structure inside a structure in 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
};

我在 MOC 中遇到的错误是由于运算符“!=”功能仍未定义。

由于在构建 complex application/module 时需要这些类型的结构定义,所以我想在这里发布这个问题,而且也没有合适的文档可用。

问题来了:我在我的结构中使用了简单的运算符加载(因为这里允许使用方法)下面是代码:

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
    }
};

通过这样做,我能够在 QML.Hope 中访问 MyNewStruct,它可以帮助其他人。