PyGTK ToggleButton类
ToggleButton部件是一个有两种状态的gtk.Button– 按下或激活 (或打开)状态和 正常或不激活(或关闭) 状态。每当按钮被按下时,状态就会交替出现。ToggleButton的状态也可以通过set_active()方法以编程方式改变。要切换按钮的状态,也可以使用toggled()方法。
gtk.ToggleButton类有以下构造函数 −
gtk.ToggleButton(label = None, use_underline = True)
这里,标签是要在按钮上显示的测试。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的状态是假的,Button2的状态就被设置为真,反之亦然。
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()
上述代码产生了以下输出 —