Qt 在QML中访问结构内部的结构
之前我发布了一个关于如何访问QML中的结构的问题,从一些很棒的人那里得到了完美的答案,现在我需要知道在QML中是否有任何方法可以访问结构中的结构,下面是代码: //MyNewStructQt 在QML中访问结构内部的结构,qt,qml,qtquick2,qgadget,Qt,Qml,Qtquick2,Qgadget,之前我发布了一个关于如何访问QML中的结构的问题,从一些很棒的人那里得到了完美的答案,现在我需要知道在QML中是否有任何方法可以访问结构中的结构,下面是代码: //MyNewStruct struct MyNewStruct { Q_GADGET float m_range; Q_PROPERTY(float range MEMBER m_range) }; struct MyStruct { Q_GADGET int m_val; QString m_name1; QStr
struct MyNewStruct {
Q_GADGET
float m_range;
Q_PROPERTY(float range MEMBER m_range)
};
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
};
//MyStruct
struct MyNewStruct {
Q_GADGET
float m_range;
Q_PROPERTY(float range MEMBER m_range)
};
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中遇到的错误是由于操作员“!=”功能尚未定义 因为在构建复杂的应用程序/模块时需要这些类型的结构定义,所以我想在这里发布这个问题,而且也没有合适的文档可用 说到问题:我在我的结构中使用了简单的运算符加载(因为这里允许使用方法),下面是代码:
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中的MyNewStruct。希望它能帮助其他人。错误是什么?
错误:与“operator!=”不匹配(操作数类型为'myStruct1'和'myStruct1'),如果(\u t->mynewstr!=*重新解释\u cast(\u v)){MyStult1是MyNeXealthsC不擅长C++,但我可以问,为什么你使用“代码> ReReTytPask< /Cord>”?我认为几乎没有任何情况下需要这个CAST……但是正如我刚才所说的,我现在正在学习C++。