簡體   English   中英

枚舉類型作為QML的C ++類中的屬性類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM