【问题标题】:How can I link a set of toggle buttons like radio buttons?如何链接一组切换按钮,如单选按钮?
【发布时间】:2013-02-13 18:30:12
【问题描述】:

我正在使用 Python 3 和 Gtk 的 gobject 自省。我怎样才能将多个切换按钮链接在一起,以便它们的行为类似于选项卡或单选按钮 - 例如默认选中一个,当另一个是clicked 时,之前的active 一个被取消选中。

我曾尝试使用set_sensetive,但这会使应用它的小部件变灰。

【问题讨论】:

    标签: python button gtk radio-button toggle


    【解决方案1】:

    使用 Gtk.RadioButton 并将绘图指示符模式设置为 False

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

    https://lazka.github.io/pgi-docs/Gtk-3.0/classes/ToggleButton.html#Gtk.ToggleButton.set_mode

    感谢:

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 在我看来,您的“替代”解决方案是首选。
      • @doublep,请参阅我对 iain 的回答以获得您的第一个建议,但我会接受您对“替代”建议的回答。
      • @doublep,顺便说一句,我想你的意思是Gtk.ToolButton.set_mode(False)
      • 他的解决方案对我有用。只需确保在切换按钮的回调中检查小部件是否处于活动状态,否则无论设置为 false 还是 true,它都会执行。
      【解决方案3】:

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

      【讨论】:

      • 我创建了一个回调函数,在发出clicked 信号时执行该函数,如果在单击之前它处于活动状态,它将再次将按钮设置为活动状态(因为我不希望所有按钮未激活),但似乎该函数在执行回调之前执行...
      猜你喜欢
      • 1970-01-01
      • 2012-04-06
      • 1970-01-01
      • 1970-01-01
      • 2012-05-19
      • 2011-01-22
      • 1970-01-01
      • 2011-07-28
      相关资源
      最近更新 更多