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 (active、pressed 或 on)或 False (inactive、normal 或 off)的值 |
---|---|
get_active() | 这是获取按钮的状态 |
toggled() | 这会在切换按钮上发出”toggled”信号 |
ToggleButton小部件发出以下信号−
Toggled | 当切换按钮的状态通过编程或用户操作发生更改时会发射此信号。 |
---|---|
下面的代码演示了如何使用ToggleButton小部件。
两个ToggleButton和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)
它在标签上显示按钮的瞬时状态。
示例
观察下面的代码−
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()
上述代码生成如下输出−