一個複選框顯示一個小標記的矩形框。單擊時,複選標記出現在矩形內,指示作出選擇。 複選框優於單選按鈕,當允許用戶多選。在這種情況下,第三狀態稱為混合或不確定的狀態,一般用在“不適用”情景。
通常情況下,一個複選框對象有兩種狀態(選中或未選中)。如果相應的參數將被賦予三態複選框也可以構造。
wx.CheckBox類的構造函數的參數如下 -
Wx.CheckBox(parent, id, label, pos, size, style)
以下樣式參數值可以使用 -
S.N. |
參數和說明
|
---|---|
1 |
wx.CHK_2STATE
創建兩個狀態複選框。 這是默認值
|
2 |
wx.CHK_3STATE
創建三態複選框
|
3 |
wx.ALIGN_RIGHT
把一個盒子標籤放在複選框的左側
|
這個類有兩個重要的方法 - GetState()返回true或false,取決於如果該複選框被選中或未選。SetValue()用於編程方式選擇一個複選框。
wx.EVT_CHECKBOX是唯一的事件綁定可用。相關的事件處理程式將在每次框架上的任何複選框被選中或取消時調用。
實例
下麵是一個簡單的例子演示如何使用三個複選框。處理函數 OnChecked()識別對應的複選框,它負責事件並顯示其狀態。
CheckBox.py 完整源代碼 −
import wx class Example(wx.Frame): def __init__(self, parent, title): super(Example, self).__init__(parent, title = title,size = (300,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 Demo - www.xuhuhu.com') ex.MainLoop()
上面的代碼產生下麵的輸出 -


A 被點擊為 True
B 被點擊為 True
C 被點擊為 True
B 被點擊為 False