我已经用pygtk做了很多东西但是我决定学习pyqt,我坚持在qgraphicsview我有absolutley不知道如何从我放置在图形视图上的项目获取信号,主要是鼠标事件。如何从场景中的个别项目中获取鼠标事件?
答案 0 :(得分:1)
QGraphicsItem不是QObject,不能发送信号,也不能接收插槽。相反,您必须处理事件。您可以通过事件过滤器,对视图或场景进行子类化来拦截事件,或者简单地对项本身进行子类化并实现事件处理函数(请参阅文档中的受保护成员函数)。也许这个例子很有意思:http://doc.trolltech.com/4.6/graphicsview-diagramscene.html。
答案 1 :(得分:0)
创建项目后,将您想要的信号连接到包含它的小部件实例。
答案 2 :(得分:0)
另一种选择是放弃使用信号并让你的QGraphicItem实例通过保持对它的引用直接调用其父类的方法。这不如使用信号那么漂亮,但最终,它完成了工作。