gpt4 book ai didi

c++ - 枚举类型作为 QML 的 C++ 类中的属性类型

转载 作者:行者123 更新时间:2023-11-28 05:40:21 29 4
gpt4 key购买 nike

我的情况与 this answer 类似.但是我在 QML 小部件中使用该属性。我成功地使用枚举注册了我的类(使用 qmlRegisterUncreatableType),我可以执行以下操作:

console.log(ClassB.A) // return me an integer

不幸的是,当我在 QML 中获取属性时

console.log(myAObjfromCpp.test) // I get QVariant(ClassB::TestEnum)

而且这两个返回值没有可比性。如何从另一个类中定义的枚举类型的 cpp 正确创建属性并在 QML 中使用它?

最佳答案

文档中对此进行了解释 here .

根据它,您需要使用 Q_ENUMS 来声明它。例如:

//C++ code
Q_ENUMS(Status)
Q_PROPERTY(Status status READ status NOTIFY statusChanged)

enum Status {
Ready,
Loading,
Error
};

//QML code
console.log(Message.Ready) //Message being the class in which enum is defined

关于c++ - 枚举类型作为 QML 的 C++ 类中的属性类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37243088/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com