如何向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
宏,这很有意义。