pygtk覚書 シグナルハンドラのdisconnect

ボタンなどのシグナルハンドラをconnect()した後、一時的にそのハンドラを解除する方法のメモです。

button = gtk.Button('Button')
sigHandle = button.connect('clicked', self.on_clicked)

# コネクトを解除したい場合、
button.disconnect(sigHandler)

# 再度、コネクトしたい場合
sigHandle = button.connect('clicked', self.on_clicked)

稀に一旦コネクションを解除しておかないと、処理が無限ループに陥ってしまうようなケースには
上記の方法で一旦コネクションを解除して、任意の処理を行い、再度コネクションを設定しなおせば
オッケーです。

つづく。