我有一组GTK +(3)RadioButtons。不过,我认为GTK的版本并不重要。
当在我的应用程序中切换RadioButton时,将执行操作并使用相关信息更新GUI。这都是在“切换”信号的连接回调中处理的。没问题。
只有非切换的RadioButton才会触发“切换”事件。有道理。
因此出现问题 - 在应用启动时,组中的默认RadioButton不会触发“切换”事件,因为它已经切换。
如何在默认的RadioButton上触发此初始操作?
我目前正在使用丑陋的黑客 - 即添加一个不可见的RadioButton,使其处于活动状态,然后我的任何实际RadioButton都可以是触发“切换”信号的有效默认值。
答案 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()
这适用于初始条件检查。