普通的类的枚举 是可以在QML中使用的,带有命名空间的没有试过,或者也是可以的
类似
#include <QtCore>
class DeviceModel: public QObject {
    Q_OBJECT
    Q_ENUMS(DeviceModelEnum)
public:
    enum DeviceModelEnum {
        Z10 = 1, Q10 = 2, Q5 = 3
    };
};
加载qml的地方
#include <devicemodel.hpp>
qmlRegisterType<DeviceModel>("ekkes_enums", 1, 0, "DeviceModel");
qml中:
import ekkes_enums 1.0
Page {
    Container {
        DropDown {
            Option {
                text: "Z10"
                value: DeviceModel.Z10
            }
            Option {
                text: "Q10"
                value: DeviceModel.Q10
            }
            Option {
                text: "Q5"
                value: DeviceModel.Q5
            }
            onSelectedIndexChanged: {
                deviceLabel.deviceModel = selectedValue
            }
        }
        Label {
            text: "Hello ENUM"
            textStyle.base: SystemDefaults.TextStyles.BigText
        }
        Label {
            text: "please select from DropDown"
            textStyle.base: SystemDefaults.TextStyles.SmallText
        }
        Label {
            id: deviceLabel
            property int deviceModel
            onDeviceModelChanged: {
                switch (deviceModel){
                    case DeviceModel.Z10:
                        text = "Touch Device"
                        break
                    case DeviceModel.Q10:
                    case DeviceModel.Q5:
                        text = "Keyboard Device"
                        break 
                    default: 
                        text = "unknown"
                }
            }
        }
    }
    onCreationCompleted: {
        console.debug("Enum value "+ DeviceModel.Q10)
        deviceLabel.deviceModel = -1
    }
}