文字列の配列に基づいてラジオ ボタンを動的に作成した PyGTK を使用してウィンドウを作成しようとしています (["option 1", "option 2", "option 3"] のような配列は 3 つのラジオ ボタンを作成します)配列要素に対応するラベル付き)。
私の問題は、すべてのラジオ ボタンがチェックされていて、チェックを外すことができないため、「トグル」イベントに接続できないことです。何が間違っているのかわかりません。
class SelectionWindow(Gtk.Window):
def __init__(self):
global options
super(EmulatorSelectionWindow, self).__init__()
self.set_title("Select an Emulator")
box = Gtk.VBox(spacing=10)
group = Gtk.RadioButton(None, "test radio")
box.pack_start(group, True,True, 0)
for option in options:
r = Gtk.RadioButton(group, option)
r.connect("toggled", self.on_radio_selection, option)
print "before setting active", r.get_active()
r.set_active(False)
print "after setting active", r.get_active()
box.pack_start(r,True, True, 0)
self.add(box)
def on_radio_selection(self, widget, data=None):
print "toggle pressed", data
get_active() を呼び出す print ステートメントは、常に True を出力します。
[編集] Gtkをロードしています
from gi.repository import Gtk