Python 如何链接一组切换按钮(如单选按钮)?

Python 如何链接一组切换按钮(如单选按钮)?,python,button,gtk,radio-button,toggle,Python,Button,Gtk,Radio Button,Toggle,我正在使用Python3和Gtk的gobject内省。如何将多个切换按钮链接在一起,使其行为类似于选项卡或单选按钮-例如,默认情况下选择一个按钮,当单击另一个按钮时,先前处于活动状态的按钮将被取消选择 我尝试过使用set\u sensetive,但它会使应用它的小部件变灰。使用set\u active()(或props.active)。或者,您可以创建一些Gtk.RadioButton小部件,并将draw_indicator属性设置为False。在后一种情况下,您可以以正常方式创建无线组,而无需

我正在使用Python3和Gtk的gobject内省。如何将多个切换按钮链接在一起,使其行为类似于选项卡或单选按钮-例如,默认情况下选择一个按钮,当单击另一个按钮时,先前处于活动状态的按钮将被取消选择


我尝试过使用
set\u sensetive
,但它会使应用它的小部件变灰。

使用
set\u active()
(或
props.active
)。或者,您可以创建一些
Gtk.RadioButton
小部件,并将
draw_indicator
属性设置为
False
。在后一种情况下,您可以以正常方式创建无线组,而无需自定义处理。

您可以在切换按钮上收听切换信号,然后在其他组上调用
set\u active()
。调用
set_active()
时,需要阻止切换的信号,以免陷入循环。

使用Gtk.RadioButton并将draw indocator mode设置为False

button1 = Gtk.RadioButton("Product Codes")
button1.set_mode(False)

Thx至:


在我看来,你的“替代”解决方案是首选方案。@doublep,你的第一个建议见我对iain答案的回复,但我会接受你对“替代”建议的回答。@doublep,顺便说一句,我想你的意思是
Gtk.ToolButton.set_mode(False)
他的解决方案适合我。只需确保您检查该小部件在togglebutton的回调中是否处于活动状态,否则无论设置为false还是true,它都将执行。我创建了一个回调函数,该函数在发出
单击
信号时执行,如果按钮在单击之前处于活动状态,则该函数会再次将其设置为活动状态(因为我不希望所有按钮都处于非活动状态),但函数似乎是在执行回调之前执行的。。。