快速注意:我已检查过其他主题,但无法确定正确的语法。
class Pet : public QObject
{
Q_OBJECT
Q_ENUMS(PetStatus)
public:
enum PetStatus { Stun, Rooted };
...
}
qmlRegisterType<Pet>(); //In other class.
此类用于PetTeam中的QList,用于PetStage中的QList。两个更高级别没有枚举。 PetStage对象单独发送到QML,从那里可以从QML中访问其他所有内容,因为它知道层次结构。
petStage.team[1].pet[2].name //Works in QML
我遇到的问题是我想在QML中使用枚举,我不知道在QML中使用正确的语法,以便
console.log(X.Rooted) //prints 1; I thought Pet.Rooted would work but it does not
正常运作。
答案 0 :(得分:2)
解决方案是创建另一个qmlRegisterType
qmlRegisterType<Pet>("PetStatus", 1, 0, "PetStatus");
从那里你将导入到QMLscript
import PetStatus 1.0
使用
从QML调用它PetStatus.Rooted //Or whatever naming convention you used for your elements