Python 在PySide2中注册QML的枚举

Python 在PySide2中注册QML的枚举,python,enums,qml,qt5,pyside2,Python,Enums,Qml,Qt5,Pyside2,我想使用PySide2将枚举从Python导出到QML。 可以使用PyQt5,请参阅 但是,PySide2中不存在所需的Q_枚举。 PySide2还有其他方法吗 我知道这是一个老问题,但对于PySide2的较新版本,您现在可以使用@QEnum装饰器。 它要求你使用QObjor作为包装器(类似于你在EnUM中放置的C++命名空间)。 下面是一个它可能看起来像什么的示例: class UserState(QObject): @QEnum class Options(Enum):

我想使用PySide2将枚举从Python导出到QML。 可以使用PyQt5,请参阅

但是,PySide2中不存在所需的Q_枚举。
PySide2还有其他方法吗

我知道这是一个老问题,但对于PySide2的较新版本,您现在可以使用@QEnum装饰器。 它要求你使用QObjor作为包装器(类似于你在EnUM中放置的C++命名空间)。 下面是一个它可能看起来像什么的示例:

class UserState(QObject):
    @QEnum
    class Options(Enum):
        ONLINE = 0
        OFFLINE = 1
        BUSY = 2
要在QML中访问此枚举,您需要首先执行以下操作:

qmlRegisterType(UserState, "yourlibname", 1, 0, "UserState")
然后将其导入QML:

import yourlibname 1.0