wxPython - CheckBox 类

  • 简述

    checkbox显示一个带标签的小矩形框。单击时,矩形内会出现一个复选标记,表示已做出选择。当允许用户做出多个选择时,复选框优于单选按钮。在这种情况下,第三种状态称为混合状态或未确定状态,一般用于“不适用”场景。
    通常,复选框对象有两种状态(选中或未选中)。Tristate checkbox如果给定了适当的样式参数,也可以构造。
    wx.CheckBox 类构造函数采用以下参数 -
    
    Wx.CheckBox(parent, id, label, pos, size, style)
    
    可以使用以下样式参数值 -
    序列号 参数及说明
    1
    wx.CHK_2STATE
    创建两个状态复选框。默认
    2
    wx.CHK_3STATE
    创建三态复选框
    3
    wx.ALIGN_RIGHT
    在复选框左侧放置一个框标签
    这个类有两个重要的方法 - GetState() 根据复选框是否被选中返回 true 或 false。SetValue() 用于以编程方式选择复选框。
    wx.EVT_CHECKBOX 是唯一可用的事件绑定器。每次选中或取消选中框架上的任何复选框时,都会调用关联的事件处理程序。
  • 例子

    下面是一个简单的例子,演示了三个复选框的使用。处理函数 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()
    
    上面的代码产生以下输出 -
    复选框输出
    值 A 被点击 True
    值 B 被点击 True
    值 C 被点击 True
    值 B 被点击 False