Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何向QML公开Qt内置枚举? 我用一个返回代码< C++ > QNETWorkRe::NETWorkRebug < /C> >的方法编写C++类。我希望在QML中使用此枚举,而不仅仅将其视为整数,这样我就可以: if (myObject.error() == NetworkError.OperationCanceledError) {_C++_Qt_Qml - Fatal编程技术网

如何向QML公开Qt内置枚举? 我用一个返回代码< C++ > QNETWorkRe::NETWorkRebug < /C> >的方法编写C++类。我希望在QML中使用此枚举,而不仅仅将其视为整数,这样我就可以: if (myObject.error() == NetworkError.OperationCanceledError) {

如何向QML公开Qt内置枚举? 我用一个返回代码< C++ > QNETWorkRe::NETWorkRebug < /C> >的方法编写C++类。我希望在QML中使用此枚举,而不仅仅将其视为整数,这样我就可以: if (myObject.error() == NetworkError.OperationCanceledError) {,c++,qt,qml,C++,Qt,Qml,而不是 if (myObject.error() == 5) { 通常,您只需要使用宏向QML公开枚举,但我认为您还需要向注册相关的类类型 所以如果你做类似的事情 Q_ENUM(NetworkError) // in myclass.h qmlRegisterType<App>("com.myapp.classes", 1, 0, "MyClass"); // in myclass.cpp 通常,您只需要使用宏向QML公开枚举,但我认为您还需要向注册相关的类类型 所以如果你做类似

而不是

if (myObject.error() == 5) {

通常,您只需要使用宏向QML公开枚举,但我认为您还需要向注册相关的类类型

所以如果你做类似的事情

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

通常,您只需要使用宏向QML公开枚举,但我认为您还需要向注册相关的类类型

所以如果你做类似的事情

Q_ENUM(NetworkError) // in myclass.h
qmlRegisterType<App>("com.myapp.classes", 1, 0, "MyClass"); // in myclass.cpp
您需要做的只是:

大体上:

qmlRegisterUncreatableType<QNetworkReply>("someimport", 1, 0, "QNetworkReply", "none");
QNetworkReply已经包含Q_ENUM和Q_DECLARE_元类型宏,所以剩下的就是将其导出到QML,您只需执行以下操作:

大体上:

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

QNetworkReply已经包含Q_ENUM和Q_DECLARE_元类型宏,所以剩下的就是将其导出到QML

我正在努力处理Q_ENUM(QNetworkReply::NetworkError)部分。当我试图编译它时,我得到:
函数'const QMetaObject*qt_getEnumMetaObject(QNetworkReply::NetworkError)'已经有了一个主体
,这在看到qt的库中已经使用了
Q_ENUM
宏时是有意义的。我正在努力解决
Q_ENUM(QNetworkReply::NetworkError)
部分。当我试图编译它时,我得到:
函数'const QMetaObject*qt_getEnumMetaObject(QNetworkReply::NetworkError)'已经有了一个body
,看到qt的库中已经使用了
Q_ENUM
宏,这很有意义。