PyQT (y IV): Ejemplo de QCheckbox

Como ya es costumbre este miércoles toca un nuevo mini artículo sobre PyQT. Hoy vamos a ver un ejemplo de QCheckbox:

Ejemplo PyQT Checkbox

Ejemplo PyQT Checkbox

from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
 
class Controles(QWidget): 
    def __init__(self, *args): 
        QWidget.__init__(self, *args)
 
        contenedor = QVBoxLayout()
        self.setLayout(contenedor)
 
        self.label = QLabel("Checkbox desactivado")
        contenedor.addWidget(self.label)
 
        self.checkbox = QCheckBox("Click para cambiar texto")
        contenedor.addWidget(self.checkbox)
        self.connect(self.checkbox, SIGNAL("stateChanged(int)"), self.cambiar)
 
        btnSalir = QPushButton("Salir",None)
        contenedor.addWidget(btnSalir)
        self.connect(btnSalir, SIGNAL("clicked()"), self.salir)
 
    def cambiar(self):
        if self.checkbox.isChecked():
            self.label.setText('Checkbox activado')
        else:
            self.label.setText('Checkbox desactivado')
 
    def salir(self):
        exit()
 
if __name__ == "__main__":
    app = QApplication(sys.argv)
    controles = Controles()
    controles.show()
    sys.exit(app.exec_())

Como detalle a destacar en este ejemplo hemos asociado el método self.cambiar a la señal stateChanged (que es la que se produce cuando se marca o desmarca la casilla):

self.connect(self.checkbox, SIGNAL("stateChanged(int)"), self.cambiar)

Es muy importante no olvidar el (int).

Otro punto importante es el método isChecked() que nos permite saber en todo momento si el checkbox está marcado o no:

if self.checkbox.isChecked():

Deja un comentario