Python 用PyQt4扩展QML

Python 用PyQt4扩展QML,python,pyqt4,qml,Python,Pyqt4,Qml,我想只使用Python编写一个QML扩展。我知道如何在C++中使用,但是不在Python中。这可能吗?这是我要找的东西的模糊概念 class NewToQML(QObject): Q_PROPERTY(int root READ num WRITE setNum NOTIFY numChanged REVISION 1) 在test.qml中: import MyQmlAdditions 1.0 NewToQML { num: 7; } [编辑] 我想使用此QML添加来完成例

我想只使用Python编写一个QML扩展。我知道如何在C++中使用,但是不在Python中。这可能吗?这是我要找的东西的模糊概念

class NewToQML(QObject):
    Q_PROPERTY(int root READ num WRITE setNum NOTIFY numChanged REVISION 1)
在test.qml中:

import MyQmlAdditions 1.0
NewToQML {
    num: 7;
}
[编辑]
我想使用此QML添加来完成例如当鼠标位于图形对象(NewToQML)上时更改光标。

如果您使用PyQt安装了示例和演示,Minehunt演示将提供一个QML示例。如果您没有安装,请下载并查看
examples/demos/declarative/minehunt

不久前,我找到了由Phil Thompson-5回答的答案,Giovanni Bajo随后给出了很好的解释/推理

简短回答:自4.7及更早版本起,PyQt不支持qmlRegisterType


但是,PySide确实具有如图所示的功能。

这适用于向QML公开数据对象,但我不确定您是否可以通过这种方式向QML公开图形对象。编辑我的问题以澄清这一部分。正如我在下面所说的,PySide无法做到这一点,但您可以通过向python发出更改光标的信号,或者通过公开一个上下文对象来完成光标更改,该对象具有一个PySlot,该PySlot使用PyQt更改光标。