0

のサブクラスで、次のようにイベントハンドラーQGraphicsViewを実装しました。wheelEvent(event)

def wheelEvent(self, event):

    print "Wheel event received"
    event.ignore()

私が理解していることから、これは実際には上記の文字列を印刷する以上のことはしないはずです。はQWheelEvent.ignore()、イベントを親に渡し、通常のビジネス(つまり、スクロール)を実行する必要があります。ドキュメントはこれについて明確です:

このハンドラーを再実装する場合、ウィジェットの親がイベントを解釈できるように、イベントを処理しない場合はイベントをignore()することが非常に重要です。

この場合、QGraphicsViewはメインウィジェットであるため、親はありません(親によって、それが派生する親クラスを意味する場合を除きます)。

ただし、実際には、文字列は期待どおりに印刷されますが、ビューはその内容をスクロールしません。

では、このメソッドを実装して、QGraphicsViewをスクロールさせるにはどうすればよいですか?

4

1 に答える 1

1

メインクラスを呼び出さない場合、親(および継承元のオブジェクト)が何かを実行するのはかなり困難ですが、コードはいつ実行されますか?

追加するsuper(type(self), self)と役立つはずです(正しいpython2構文を提供してくれた@mataに感謝します)

于 2012-05-26T12:04:50.267 に答える