QWheelEvent.ignore()没有通过事件?

时间:2012-05-26 11:59:12

标签: python event-handling qt4 pyqt4

QGraphicsView的子类中,我实现了wheelEvent(event)事件处理程序,如下所示:

def wheelEvent(self, event):

    print "Wheel event received"
    event.ignore()

据我所知,这实际上应该只是打印上面的字符串。 QWheelEvent.ignore()应该将事件传递给父级并继续其常规业务(即滚动)。 documentation明确指出:

  

如果你重新实现这个处理程序,如果你不处理它就忽略()事件是非常重要的,这样小部件的父级就可以解释它。

在这种情况下,QGraphicsView是主窗口小部件,因此它没有父窗口(除非父窗口是指从中派生它的父类)。

但实际上,字符串按预期打印,但视图不会滚动其内容。

那么如何实现此方法QGraphicsView滚动?

1 个答案:

答案 0 :(得分:1)

好吧,如果你永远不会调用主类,那么对于父类(并且是你继承的对象)来说,做任何事都会很困难,代码什么时候运行?

添加super(type(self), self)应该会有所帮助(感谢@mata提供正确的python2语法)