Tutorial de PyQt5 - CheckBox

Jinku Hu 3 enero 2023 18 enero 2020
  1. Ejemplo de CheckBox
  2. Evento CheckBox
Tutorial de PyQt5 - CheckBox

En este tutorial vamos a aprender QCheckBox en PyQt5. Un QCheckBox es un botón de opción que puede ser marcado o desmarcado. El usuario puede marcar múltiples opciones del grupo de checkbox.

Ejemplo de CheckBox

import sys
from PyQt5.QtWidgets import (QWidget, QLabel, QHBoxLayout,QCheckBox, QApplication)

class basicWindow(QWidget):
    def __init__(self):
        super().__init__()
        
        layout = QHBoxLayout()
        self.setLayout(layout)
        
        self.checkBoxA = QCheckBox("Select This.")
        self.labelA = QLabel("Not slected.")
        
        layout.addWidget(self.checkBoxA)
        layout.addWidget(self.labelA)
        
        self.setGeometry(200, 200, 300, 200)            
                
        self.setWindowTitle('CheckBox Example')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    windowExample = basicWindow()
    windowExample.show()
    sys.exit(app.exec_())    

Dónde,

self.checkBoxA = QCheckBox("Select This.")

self.checkBoxA es una instancia del widget QCheckBox en PyQt5. El texto dado - Select This. se mostrará junto al cuadrado hueco de CheckBox.

Ejemplo de PyQt5 CheckBox

Evento CheckBox

Básicamente un usuario debe marcar o desmarcar la casilla de verificación, luego la acción debe realizarse en base a la señal de cambio de estado.

import sys
from PyQt5.QtWidgets import (QWidget, QLabel, QHBoxLayout,QCheckBox, QApplication)
from PyQt5 import QtCore

class basicWindow(QWidget):
    def __init__(self):
        super().__init__()
        
        layout = QHBoxLayout()
        self.setLayout(layout)
        
        self.checkBoxA = QCheckBox("Select This.")
        self.labelA = QLabel("Not slected.")
        
        self.checkBoxA.stateChanged.connect(self.checkBoxChangedAction)
        
        layout.addWidget(self.checkBoxA)
        layout.addWidget(self.labelA)
        
        self.setGeometry(200, 200, 300, 200)            
                
        self.setWindowTitle('CheckBox Example')
    
    def checkBoxChangedAction(self, state):
        if (QtCore.Qt.Checked == state):
            self.labelA.setText("Selected.")
        else:
            self.labelA.setText("Not Selected.")
        

if __name__ == '__main__':
    app = QApplication(sys.argv)
    windowExample = basicWindow()
    windowExample.show()
    sys.exit(app.exec_())
    
self.checkBoxA.stateChanged.connect(self.checkBoxChangedAction)

Conectamos el método de ranura checkBoxChangeAction() a la señal CheckBox stateChanged. Cada vez que el usuario marque o desmarque la casilla de verificación, llamará a checkBoxChangeAction().

def checkBoxChangedAction(self, state):
	if (QtCore.Qt.Checked == state):
		self.labelA.setText("Selected.")
	else:
		self.labelA.setText("Not Selected.")

El argumento state es el estado del CheckBox pasado y el texto labelA cambiará a Selected si el CheckBox está marcado, o a Not Selected si está desmarcado.

Evento PyQt5 CheckBox

Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn