PyGTK - ToggleButton 切换按钮类
ToggleButton 小部件是一个具有两种状态的 gtk.Button — 按下或活动(或开启)状态和正常或非活动(或关闭) 状态。 每次按下按钮,状态交替。 ToggleButton 的状态也可以通过 set_active() 方法以编程方式更改。 要切换按钮的状态,也可以使用 toggled() 方法。
gtk.ToggleButton 类具有以下构造函数 −
gtk.ToggleButton(label = None, use_underline = True)
这里的label是要在button上显示的测试。 use_underline 属性,如果为 True,文本中的下划线表示下一个字符应该加下划线并用于助记加速器。
gtk.ToggleButton类的一些重要方法如下表所示 −
set_active() | 这会将 active 属性的值设置为 True(活动或按下或打开)或 False(不活动或正常或关闭) |
get_active() | 这将检索按钮的状态 |
toggled() | 这会在 togglebutton 上发出"toggled"切换信号。 |
ToggleButton 小部件发出以下信号 −
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()
以上代码生成以下输出 −