カスタムウィジェットを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"
この状況でどのイベントハンドラーがイベントを取得するかがどのように決定されるかを誰かが私に説明できますか?