当前位置: 首页 > 文档资料 > wxPython 中文教程 >

wx.CheckBox

优质
小牛编辑
139浏览
2023-12-01

checkbox显示一个带标签的小方框。 单击时,矩形内会出现一个复选标记,表示已做出选择。 当允许用户进行多个选择时,复选框优于单选按钮。 在这种情况下,第三种状态称为混合或未确定状态,通常用于“不适用”场景。

通常,复选框对象具有两种状态(已选中或未选中)。 如果给出了适当的样式参数,也可以构造Tristate checkbox

wx.CheckBox类构造函数采用以下参数 -

Wx.CheckBox(parent, id, label, pos, size, style)

可以使用以下样式参数值 -

SN参数和描述
1

wx.CHK_2STATE

创建两个状态复选框。 默认

2

wx.CHK_3STATE

创建三个状态复选框

3

wx.ALIGN_RIGHT

在复选框的左侧放置一个框标签

这个类有两个重要的方法 - GetState()返回true或false,具体取决于是否选中了复选框。 SetValue()用于以编程方式选择复选框。

wx.EVT_CHECKBOX是唯一可用的事件绑定器。 每次选中或取消选中框架上的任何复选框时,都会调用关联的事件处理程序。

例子 (Example)

以下是演示使用三个复选框的简单示例。 处理程序函数OnChecked()标识复选框,该复选框负责事件并显示其状态。

完整的代码是 -

import wx  
class Example(wx.Frame): 
   def __init__(self, parent, title): 
      super(Example, self).__init__(parent, title = title,size = (200,200)) 
      self.InitUI() 
   def InitUI(self):    
      pnl = wx.Panel(self) 
      self.cb1 = wx.CheckBox(pnl, label = 'Value A',pos = (10,10)) 
      self.cb2 = wx.CheckBox(pnl, label = 'Value B',pos = (10,40)) 
      self.cb3 = wx.CheckBox(pnl, label = 'Value C',pos = (10,70)) 
      self.Bind(wx.EVT_CHECKBOX,self.onChecked) 
      self.Centre() 
      self.Show(True) 
   def onChecked(self, e): 
      cb = e.GetEventObject() 
      print cb.GetLabel(),' is clicked',cb.GetValue()
ex = wx.App() 
Example(None,'CheckBox') 
ex.MainLoop()

上面的代码产生以下输出 -

CheckBox输出

单击值为True

单击值为True

单击值C为True

单击值B为False