【python】【Linux】PyGTK模块的使用-PyGTK ToggleButton类 【十六】

66 篇文章 1 订阅
28 篇文章 5 订阅

ToggleButton小部件是一个gtk.Button,它具有两种状态- 按下或活动(或打开)状态以及正常或不活动(或关闭)状态。每次按下该按钮,状态就会交替变化。还可以通过set_active()方法以编程方式更改ToggleButton的状态。要切换按钮的状态,还可以使用toggled()方法。

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

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

在这里,标签是要在按钮上显示的测试。use_underline属性(如果为True),文本中的下划线表示下一个字符应加下划线并用于助记符。

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

set_active()这会将active属性的值设置为True(活动或按下或打开)或False(无效或正常或关闭)
get_active()这检索按钮的状态
toggled()这会在切换按钮上发出“切换”信号。

ToggleButton小部件发出以下信号-

切换当切换按钮状态以编程方式或通过用户操作更改时,将发出此消息。

下面给出的代码演示了ToggleButton小部件的用法。

VBox容器中放置了两个ToggleButtons和Label小部件。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()

上面的代码生成以下输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GLL_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值