wxPython - Classe CheckBox

UN checkboxmostra una piccola scatola rettangolare etichettata. Quando si fa clic, all'interno del rettangolo viene visualizzato un segno di spunta per indicare che è stata effettuata una scelta. Le caselle di controllo sono preferite rispetto ai pulsanti di opzione quando all'utente deve essere consentito di fare più di una scelta. In questo caso, il terzo stato è chiamato stato misto o indeterminato, generalmente utilizzato nello scenario "non applicabile".

Normalmente, un oggetto casella di controllo ha due stati (selezionato o deselezionato). Tristate checkbox può anche essere costruito se viene fornito il parametro di stile appropriato.

Il costruttore della classe wx.CheckBox accetta i seguenti parametri:

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

È possibile utilizzare i seguenti valori dei parametri di stile:

SN Parametri e descrizione
1

wx.CHK_2STATE

Crea una casella di controllo a due stati. Predefinito

2

wx.CHK_3STATE

Crea una casella di controllo a tre stati

3

wx.ALIGN_RIGHT

Mette un'etichetta di casella a sinistra della casella di controllo

Questa classe ha due metodi importanti: GetState () restituisce true o false a seconda che la casella di controllo sia selezionata o meno. SetValue () viene utilizzato per selezionare una casella di controllo a livello di codice.

wx.EVT_CHECKBOX è l'unico raccoglitore di eventi disponibile. Il gestore di eventi associato verrà richiamato ogni volta che una qualsiasi casella di controllo sul frame viene selezionata o deselezionata.

Esempio

Di seguito è riportato un semplice esempio che dimostra l'uso di tre caselle di controllo. La funzione gestore OnChecked () identifica la casella di controllo, che è responsabile dell'evento e ne visualizza lo stato.

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

Il codice precedente produce il seguente output:

Si fa clic sul valore A Vero

Si fa clic sul valore B Vero

Si fa clic sul valore C Vero

Si fa clic sul valore B False