PyGTK - ToggleButton 类



ToggleButton 小部件是一个具有两种状态的 gtk.Button —— **按下或激活**(或开启)状态和**正常或非激活**(或关闭)状态。每次按下按钮时,状态都会交替切换。也可以通过 `set_active()` 方法以编程方式更改 ToggleButton 的状态。要切换按钮的状态,还可以使用 `toggled()` 方法。

gtk.ToggleButton 类具有以下构造函数:

gtk.ToggleButton(label = None, use_underline = True)

这里,`label` 是要在按钮上显示的文本。`use_underline` 属性如果为 True,则文本中的下划线表示下一个字符应加下划线并用作记忆助记符加速键。

下表列出了一些 gtk.ToggleButton 类的重要方法:

set_active() 这将 **active** 属性设置为 **True**(激活或按下或开启)或 **False**(非激活或正常或关闭)
get_active() 这将检索按钮的状态
toggled() 这会在 togglebutton 上发出“toggled”信号。

ToggleButton 小部件发出以下信号:

Toggled 当 togglebutton 状态通过编程方式或用户操作发生更改时,将发出此信号。

以下代码演示了 ToggleButton 小部件的使用。

两个 ToggleButton 和 Label 小部件放置在 VBox 容器中。Button1 发出的 toggled 信号连接到回调函数 `on_toggled()`。在此函数中,如果 Button1 的状态为 False,则将 Button2 的状态设置为 True,反之亦然。

if self.btn1.get_active() == True:
   self.btn2.set_active(False)
else:
   self.btn2.set_active(True)

它在 Label 上显示按钮的瞬时状态。

示例

观察以下代码:

import gtk

 PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Toggle Button")
      self.set_default_size(250, 200)
      self.set_position(gtk.WIN_POS_CENTER)
      
      vbox = gtk.VBox()
      self.btn1 = gtk.ToggleButton("Button 1")
      self.btn1.connect("toggled", self.on_toggled)
      self.btn2 = gtk.ToggleButton("Button 2")
      self.lbl = gtk.Label()
      
      vbox.add(self.btn1)
      vbox.add(self.btn2)
      vbox.add(self.lbl)
      self.add(vbox)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
   
   def on_toggled(self, widget, data = None):
      if self.btn1.get_active() == True:
         self.btn2.set_active(False)
      else:
         self.btn2.set_active(True)
         state = "Button1 : "+str(self.btn1.get_active())+" 
         Button2 : "+str(self.btn2.get_active())
         self.lbl.set_text(state)
if __name__ == '__main__':
   PyApp()
   gtk.main()

以上代码生成以下输出:

Toggle Button
广告
© . All rights reserved.