wxPython - classe CheckBox

UMA checkboxexibe uma pequena caixa retangular etiquetada. Quando clicado, uma marca de seleção aparece dentro do retângulo para indicar que uma escolha foi feita. As caixas de seleção têm preferência sobre os botões de opção quando o usuário deve ter permissão para fazer mais de uma escolha. Nesse caso, o terceiro estado é chamado de estado misto ou indeterminado, geralmente usado no cenário 'não se aplica'.

Normalmente, um objeto de caixa de seleção tem dois estados (marcado ou desmarcado). Tristate checkbox também pode ser construído se o parâmetro de estilo apropriado for fornecido.

O construtor da classe wx.CheckBox usa os seguintes parâmetros -

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

Os seguintes valores de parâmetro de estilo podem ser usados ​​-

SN Parâmetros e descrição
1

wx.CHK_2STATE

Cria a caixa de seleção de dois estados. Padrão

2

wx.CHK_3STATE

Cria uma caixa de seleção de três estados

3

wx.ALIGN_RIGHT

Coloca um rótulo de caixa à esquerda da caixa de seleção

Esta classe tem dois métodos importantes - GetState () retorna verdadeiro ou falso dependendo se a caixa de seleção está marcada ou não. SetValue () é usado para selecionar uma caixa de seleção programaticamente.

wx.EVT_CHECKBOX é o único fichário de eventos disponível. O manipulador de eventos associado será chamado sempre que qualquer caixa de seleção no quadro for marcada ou desmarcada.

Exemplo

A seguir está um exemplo simples que demonstra o uso de três caixas de seleção. A função de handler OnChecked () identifica a caixa de seleção, que é responsável pelo evento e exibe seu estado.

O código completo é -

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()

O código acima produz a seguinte saída -

Valor A clicado em Verdadeiro

Valor B clicado em Verdadeiro

Valor C clicado em Verdadeiro

Valor B clicado em falso