PyGTK - ToggleButton 类

  • 简述

    ToggleButton 小部件是具有两种状态的 gtk.Button - 按下或激活(或打开)状态和 正常或非活动(或关闭) 状态。每按一次按钮,状态就会交替变化。 ToggleButton 的状态也可以通过 set_active() 方法以编程方式更改。要切换按钮的状态,也可以使用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 小部件发出以下信号 -
    切换 当切换按钮状态以编程方式或用户操作改变时发出。
    下面给出的代码演示了 ToggleButton 小部件的使用。
    两个 ToggleButtons 和 Label 小部件放置在 VBox 容器中。 Button1 发出的切换信号连接到回调函数 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()
    
    上面的代码生成以下输出 -
    切换按钮