2012-05-26 26 views
0

QGraphicsView一個子類,我實現了wheelEvent(event)事件處理程序如下:QWheelEvent.ignore()不通過事件傳遞?

def wheelEvent(self, event): 

    print "Wheel event received" 
    event.ignore() 

據我瞭解,這實際上應該做的比打印上面的字符串而已。 QWheelEvent.ignore()應該把事件傳遞給父母並且去做其平常的事務(即滾動)。該documentation是明確這一點:

如果重新實現此處理,重要的是你忽略了()的情況下,如果你不處理它,從而使小部件的父可以解釋這一點非常重要。

在這種情況下,QGraphicsView是主插件,因此它沒有父(除非由父一個指其來源父類)。

但實際上,字符串按預期打印,但視圖不滾動其內容。

那麼我該如何實現這個方法得到QGraphicsView滾動?

回答

1

那麼如果你從來沒有調用過主類,那麼父類(是的,那就是你繼承的對象)很難做任何事,代碼何時運行?

添加super(type(self), self)應該幫助(感謝@mata正確的python2語法)

+1

在python2這將是'超(類型(自我),個體經營).wheelEvent(事件)' – mata

+0

這是有道理的,它作品。我以前從來不需要打電話給超級班。當我使用Python 2.7時,Mata的語法對我來說確實是正確的 – Benjamin