GTK + RadioButton默认值 - 如何解决难看的黑客?

时间:2011-12-01 17:42:01

标签: python gtk

我有一组GTK +(3)RadioButtons。不过,我认为GTK的版本并不重要。

当在我的应用程序中切换RadioButton时,将执行操作并使用相关信息更新GUI。这都是在“切换”信号的连接回调中处理的。没问题。

只有非切换的RadioButton才会触发“切换”事件。有道理。

因此出现问题 - 在应用启动时,组中的默认RadioButton不会触发“切换”事件,因为它已经切换。

如何在默认的RadioButton上触发此初始操作?

我目前正在使用丑陋的黑客 - 即添加一个不可见的RadioButton,使其处于活动状态,然后我的任何实际RadioButton都可以是触发“切换”信号的有效默认值。

2 个答案:

答案 0 :(得分:2)

以下将强制按钮发出toggled信号:

button.toggled()

这是有效的,因为已经定义了toggled方法。但是,如果不是,您仍然可以使用emit方法强制任何小部件发出任何信号:

button.emit('toggled')

答案 1 :(得分:1)

我不确定这是否符合您的需求,但您也可以使用button.get_group()button.get_active()而不是观看toggled事件。

# python shell
button1 = gtk.RadioButton(None, "radio button1")
button2 = gtk.RadioButton(button1, "radio button2")
button3 = gtk.RadioButton(button1, "radio button3")

for b in button3.get_group():
    print b.is_active()

这适用于初始条件检查。