2016-05-15 16 views
0

this answerと同様の状況があります。しかし、私はQMLウィジェットのプロパティを使用します。私は(qmlRegisterUncreatableTypeを使用して)列挙して私のクラスを登録するに成功したと私は、次の操作を行うことができます。私はQMLQMLのC++クラスのプロパティ型としてenum型

でプロパティを取るとき

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

は残念ながら

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

そして、これら2つの戻り値を比較することはできませんお互いに。別のクラスで定義されたenum型のcppからプロパティを正しく作成し、QMLで使用する方法

+3

重複:http://stackoverflow.com/questions/20089196/how-to-access-c-enum-from-qml/20108038 –

答えて

1

これは、文書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 
+3

はありQt5でQ_ENUMSを使用していません交換のためのQ_ENUM – tty6

+2

Qt 5.5以上が正確です。 – astre

+0

@astreこれはかなりよく知っていて、私のために働く。私はenumが別のクラスで定義されている場合、それを行う方法を尋ねました。私はこの場合に問題があります。 – user14416

関連する問題