wxPython - Clase CheckBox
UN checkboxmuestra una pequeña caja rectangular etiquetada. Cuando se hace clic, aparece una marca de verificación dentro del rectángulo para indicar que se hizo una elección. Se prefieren las casillas de verificación sobre los botones de opción cuando se permite al usuario hacer más de una elección. En este caso, el tercer estado se denomina estado mixto o indeterminado, y generalmente se usa en el escenario "no se aplica".
Normalmente, un objeto de casilla de verificación tiene dos estados (marcado o no marcado). Tristate checkbox también se puede construir si se proporciona el parámetro de estilo apropiado.
El constructor de la clase wx.CheckBox toma los siguientes parámetros:
Wx.CheckBox(parent, id, label, pos, size, style)
Se pueden utilizar los siguientes valores de parámetros de estilo:
SN | Parámetros y descripción |
---|---|
1 | wx.CHK_2STATE Crea una casilla de verificación de dos estados. Defecto |
2 | wx.CHK_3STATE Crea una casilla de verificación de tres estados |
3 | wx.ALIGN_RIGHT Pone una etiqueta de caja a la izquierda de la casilla de verificación |
Esta clase tiene dos métodos importantes: GetState () devuelve verdadero o falso dependiendo de si la casilla de verificación está marcada o no. SetValue () se utiliza para seleccionar una casilla de verificación mediante programación.
wx.EVT_CHECKBOX es la única carpeta de eventos disponible. El controlador de eventos asociado se invocará cada vez que se active o desactive cualquier casilla de verificación del marco.
Ejemplo
A continuación se muestra un ejemplo sencillo que demuestra el uso de tres casillas de verificación. La función de controlador OnChecked () identifica la casilla de verificación, que es responsable del evento y muestra su estado.
El código completo es:
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()
El código anterior produce la siguiente salida:
Se hace clic en el valor A verdadero
Se hace clic en el valor B Verdadero
Se hace clic en el valor C verdadero
Se hace clic en el valor B Falso