wxPython - 複選框類



一個 複選框 顯示一個標有標籤的小矩形框。單擊時,矩形內會出現一個對勾,表示做出選擇。當允許使用者做出多項選擇時,複選框將優先於單選按鈕。在這種情況下,第三個狀態稱為混合狀態或未確定狀態,一般用於“不適用”的情況。

通常,複選框物件有兩種狀態(選中或未選中)。如果給出了適當的 style 引數,也可以構造 三態複選框

wx.CheckBox 類建構函式採用以下引數 −

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

可以使用以下 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()

上述程式碼會生成以下輸出 −

CheckBox Output

值 A 被單擊 True

值 B 被單擊 True

值 C 被單擊 True

值 B 被單擊 False

wxpython_major_classes.htm
廣告
© . All rights reserved.