[英]enum type as property type in C++ class for QML
我的情況與此答案相似。 但是,我在QML小部件中使用該屬性。 我成功使用enum注冊了我的課程(使用qmlRegisterUncreatableType
),並且可以執行以下操作:
console.log(ClassB.A) // return me an integer
不幸的是,當我在QML中購買物業時
console.log(myAObjfromCpp.test) // I get QVariant(ClassB::TestEnum)
而且這兩個返回值無法相互比較。 如何從另一個類中定義的枚舉類型的cpp中正確創建屬性,並在QML中使用它?
在此處的文檔中對此進行了說明。
按照它,您需要使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.