2017-03-21 4 views

答えて

5

あなたがやらなければならないことは、次のとおりです。メインで

qmlRegisterUncreatableType<QNetworkReply>("someimport", 1, 0, "QNetworkReply", "none"); 

qミリリットル:

import someimport 1.0 
... 
if (myObject.error() == QNetworkReply.OperationCanceledError) { 

QNetworkReplyがすでにQ_ENUMとQ_DECLARE_METATYPEマクロが含まれているので、残っているものQML

2

if (myObject.error() == NetworkError.OperationCanceledError) { 

をあなただけQ_ENUMマクロを使用する必要があります。私は私が行うことができるように、QMLの内部でこの列挙を使用していないだけで、整数として扱いたいです列挙型をQMLに公開するには、qmlRegisterTypeという関連するクラスタイプを登録する必要があると思います。

あなたは

Q_ENUM(NetworkError) // in myclass.h 
qmlRegisterType<App>("com.myapp.classes", 1, 0, "MyClass"); // in myclass.cpp 

ような何かを行うのであればあなたがQMLに列挙型にアクセスできるようにする必要があります

import com.myapp.classes 1.0 
if (myObject.error() == MyClass.OperationCanceledError) { ... } 
+0

私は 'Q_ENUM(QNetworkReply :: NetworkError)'パートに苦しんだにそれをエクスポートすることです。 'function 'const QMetaObject * qt_getEnumMetaObject(QNetworkReply :: NetworkError)はQtのライブラリ内ですでに' Q_ENUM'マクロが使用されていることを知っています。 –

関連する問題