公式の PyGObject チュートリアルを読んでいると、例の 1 つでこの (説明のつかない) 行が見つかりました。
self.timeout_id = None
(これは -descendant クラスの__init__
関数内にありました。Gtk.Window
リスト全体はhere です)。グーグルで検索できませんでした。それはなんのためですか?
on_pulse_toggled のさらに下で設定および使用されているのを見ませんでしたか?
これには、GObject.timeout_add の戻り値が割り当てられます。これにより、(この場合のように) 後で繰り返し呼び出される関数が追加されます。
self.timeout_id = GObject.timeout_add(100, self.do_pulse, None)
このタイムアウトがもう呼び出されないようにするには、それを削除する必要があります。そのためには、作成したタイムアウトの ID が必要です。
GObject.source_remove(self.timeout_id)