1

カスタムウィジェットをQScrollAreaに配置したいのですが、カスタムウィジェットで、wheelEvent(e)を再実装しましたが、呼び出されません。

スクロール領域にマウスホイールのスクロール機能がなくても問題ありません。ハンドラーを呼び出すには、これらのwheelEventsが必要です。メインウィンドウのレベルでイベントを処理しようとしましたが、スクロールウィジェットが極端な状態にあり、それ以上移動できなかった場合にのみイベントを取得しました。すべてのイベントが必要です。

これが私のコードの簡略版です:

class custom(QWidget):
    def __init__(self, parent=None):
        super(custom, self).__init__(parent)
        self.parent = parent

    def wheelEvent(self,event):
        print "Custom Widget's wheelEvent Handler"

class mainw(QMainWindow):
    def __init__(self, parent=None):
        super(mainw, self).__init__(parent)
        scroll = QScrollArea()
        self.tw = thread_widget(scroll)
        scroll.setWidget(self.tw)
        self.setCentralWidget(scroll)

    def wheelEvent(self,event):
        print "Main Window's wheelEvent Handler"

この状況でどのイベントハンドラーがイベントを取得するかがどのように決定されるかを誰かが私に説明できますか?

4

2 に答える 2

0

QObject の installEventFilter メソッドと関係があることがわかりましたが、例を機能させることができなかったので、これで地獄に行き、計画を完全に変更しました。

問題が解決しました

于 2009-06-18T20:06:22.147 に答える