2017-12-22 7 views
0

私はいくつかのRadioMenuItemを持つメニューを持っています。Gtk RadioMenuItemをアクティブにしないで '選択済み'に設定する方法

ユーザーがオプションを選択すると、自分のプログラムがメニューをリロードして、選択したアイテムにポインタをリセットします。

プログラムで設定し直す必要がありますが、接続されている関数をアクティブにする必要はありません。 RadioMenuItem.set_active(True)が機能を有効にします。実際には、メニューが描画されたときでも私がset_activeに電話をしなくても、私の関数が呼び出されたようです。

どうすればよいですか?

+1

私は通常、Pythonでプログラミングしませんが、http://www.pygtk.org/pygtk2tutorial/ch-AdvancedEventAndSignalHandling.htmlに記載されているように、ハンドラIDとobject.disconnect(handler_id)を使って試してみましたか? –

+0

これは私にとって[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)のようなものです。どうしてあなたはメニューの中のウィジェットをリセット/破棄するような方法でメニューを「再読み込み」しているのですか?あなたがここで何か間違っていると感じるのを揺さぶることはできません。 –

+0

私は新しいデータでメニュー項目を更新しています。単にset_label()を呼び出すだけです。これは '活性化'を引き起こすようです。 – bluppfisk

答えて

0

デューティactiveは、RadioMenuItemに接続するための間違った信号です。ただし、通常のMenuItemには問題ありません。

代わりに、toggledシグナルを接続してから、コールバック関数をチェックして、ウィジェットのget_active()関数がTrueを返すかどうかを確認してください。

関連する問題