我想使用 PySide2 将枚举从 Python 导出到 QML。 可以使用 PyQt5 参见 PyQt5 && QML exporting enum
但是 PySide2 中不存在所需的 Q_ENUMS。 PySide2 中还有其他方法吗?
最佳答案
我知道这是一个老问题,但是对于较新版本的 PySide2,您现在可以使用 @QEnum 装饰器。 它要求您使用 QObject 作为包装器(类似于您放置在枚举周围的 C++ 命名空间)。
这是它可能看起来像的一个例子:
class UserState(QObject):
@QEnum
class Options(Enum):
ONLINE = 0
OFFLINE = 1
BUSY = 2
为了在 QML 中访问这个枚举,你需要 register首先:
qmlRegisterType(UserState, "yourlibname", 1, 0, "UserState")
然后将其导入您的 QML:
import yourlibname 1.0
关于python - 在 PySide2 中为 QML 注册枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55280431/