Enums 在QML中访问Q_枚举
快速提示:我检查了其他主题,无法识别正确的语法Enums 在QML中访问Q_枚举,enums,qml,qt5,Enums,Qml,Qt5,快速提示:我检查了其他主题,无法识别正确的语法 class Pet : public QObject { Q_OBJECT Q_ENUMS(PetStatus) public: enum PetStatus { Stun, Rooted }; ... } qmlRegisterType<Pet>(); //In other class. 我遇到的问题是我想在QML中使用enum,但我不知道在QML中使用的语法是否正确,因此 console.log(
class Pet : public QObject
{
Q_OBJECT
Q_ENUMS(PetStatus)
public:
enum PetStatus { Stun, Rooted };
...
}
qmlRegisterType<Pet>(); //In other class.
我遇到的问题是我想在QML中使用enum,但我不知道在QML中使用的语法是否正确,因此
console.log(X.Rooted) //prints 1; I thought Pet.Rooted would work but it does not
功能正确。解决方案是创建另一个qmlRegisterType
qmlRegisterType<Pet>("PetStatus", 1, 0, "PetStatus");
并使用
PetStatus.Rooted //Or whatever naming convention you used for your elements
根据文档,您的代码是错误的,不能正常工作。“它必须放在具有Q_对象或Q_GADGET宏的类中的枚举声明之后。”
import PetStatus 1.0
PetStatus.Rooted //Or whatever naming convention you used for your elements