pygtk で、デフォルトのイベントハンドラを無効にする。
treeView を、ScrolledWindow に入れているのだが、ホイールスクロールをした時の動作を変えたい。
そこで、treeView のイベント"scroll_event"に connect したのだが、ScrolledWindow のイベントも実行されてしまい、訳のわからないことに…。
disconnect しようにも、ハンドラIDがわからない…
で、結論。
ScrolledWindow のイベントハンドラを無効にするには、True を返すイベントを登録すればよい。
こんな感じ。
sw = gtk.ScrolledWindow() def disEvent(a,b): return True sw.connect( "scroll_event", disEvent ) # ホイールスクロールを無効化
lambdaを使ったほうがすっきりするか。
sw.connect( "scroll_event", lambda a,b: True ) # ホイールスクロールを無効化