枚举定义
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
enum FunType{
RED = 1,
YELLOW,
BLUE
};
Q_ENUM(FunType)
MainWindow(QWidget *parent = nullptr);
~MainWindow();
Q_INVOKABLE void callFun(FunType funType);
protected:
void resizeEvent(QResizeEvent* e) override;
private:
void initQmlWidget();
private:
Ui::MainWindow *ui;
QQuickView* m_pQmlView = NULL;
QQuickWidget* m_pQmlPanel = NULL;
QQmlContext* m_pContext = NULL;
};
注册类型
注册枚举所在类
qmlRegisterType<MainWindow>("com.EnumTest.MainWindow", 1, 0, "MainWindow");
QML引用注册类
import com.EnumTest.MainWindow 1.0
QML中使用枚举
appMainWindow.callFun(MainWindow.RED);