wxPython - CheckBox 复选框类
checkbox 显示一个带标签的小矩形框。 单击时,矩形内会出现一个复选标记,表示已做出选择。 当允许用户做出多个选择时,复选框优于单选按钮。 在这种情况下,第三种状态称为混合或未确定状态,通常用于"不适用"场景。
通常,复选框对象有两种状态(选中或未选中)。 Tristate checkbox如果给定适当的样式参数也可以构造。
wx.CheckBox 类构造函数接受以下参数 −
Wx.CheckBox(parent, id, label, pos, size, style)
可以使用以下 style 样式参数值 −
| S.N. | 参数 & 说明 |
|---|---|
| 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()
以上代码产生如下输出 −
Value A is clicked True
Value B is clicked True
Value C is clicked True
Value B is clicked False

