Events qt4 qgraphicsview的帮助

Events qt4 qgraphicsview的帮助,events,qt4,pyqt,signals,Events,Qt4,Pyqt,Signals,我用pygtk做了很多事情,但是我决定学习pyqt,我被困在qgraphicsview中,我完全不知道如何从我放置在图形视图中的项目中获取信号,主要是鼠标事件。如何从场景中的单个项目中获取鼠标事件?在创建项目之后,将您想要的信号连接到包含它的小部件实例。另一种选择是放弃使用信号,让您的QGraphicItem实例通过保留对它的引用直接调用其父对象的方法。这不如使用信号,但最终它完成了任务。QGraphicsItem不是QObject,不能发送信号,也不能接收插槽。相反,您必须处理事件。您可以通过

我用pygtk做了很多事情,但是我决定学习pyqt,我被困在qgraphicsview中,我完全不知道如何从我放置在图形视图中的项目中获取信号,主要是鼠标事件。如何从场景中的单个项目中获取鼠标事件?

在创建项目之后,将您想要的信号连接到包含它的小部件实例。

另一种选择是放弃使用信号,让您的QGraphicItem实例通过保留对它的引用直接调用其父对象的方法。这不如使用信号,但最终它完成了任务。

QGraphicsItem不是QObject,不能发送信号,也不能接收插槽。相反,您必须处理事件。您可以通过事件过滤器、对视图或场景进行子分类以截获事件,或者简单地对项目本身进行子分类并实现事件处理功能(请参见文档中的受保护成员函数)来实现这一点。也许这个例子很有意思:.

我读了大量包含“QGraphicsThis”和“QGraphicsThat”的文档,我还没有看到任何图形项的api中列出了任何信号,而且图形项似乎没有connect()方法。这些信号在api参考中的位置?我如何将它们连接到我自己的函数?是的,因为QGraphicItem不从QObject继承。但是,在C++中,您可以创建自己的类,继承来自QObjor和QGraphicItem,并创建一个发出信号的项。但我不确定python是如何做到这一点的。您可以按照shoosh所说的,继承QObject和您所追求的QGraphicsXxx类。(请记住首先继承QObject并添加Q_对象宏等)。如果您创建自己的图形项,只需继承QGraphicsObject,它是QObject(您仍然需要Q_OBJECT宏等,但无需再次继承QObject)