Я пытаюсь создать окно с помощью PyGTK, в котором есть динамически созданные переключатели на основе массива строк (массив, который выглядит как ["вариант 1", "вариант 2", "вариант 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(), всегда печатают True.
[Изменить] Я загружаю Gtk с помощью
from gi.repository import Gtk