1

我正在尝试使用 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() 的打印语句总是打印 True

[编辑] 我正在加载 Gtk

from gi.repository import Gtk

这是我的窗户

4

1 回答 1

2

似乎在较新的版本中,您使用了静态方法Gtk.RadioButton.new_with_label_from_widget而不是您当前用于创建单选按钮的方法(适用于 pygtk 2.0 版本)。尝试在代码中更改Gtk.RadioButton为。 希望这可以帮助!Gtk.RadioButton.new_with_label_from_widget

于 2012-10-05T19:15:41.387 回答