PyQt5 Tutorial - CheckBox

  1. Exemplo CheckBox
  2. Evento CheckBox

Neste tutorial nós vamos aprender QCheckBox em PyQt5. A QCheckBox é um botão de opção que pode ser marcado ou desmarcado. O usuário pode marcar múltiplas opções a partir do grupo de caixas de seleção.

Exemplo CheckBox

CheckBox.py
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_())    

Onde,

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

O self.checkBoxA é uma instância do widget QCheckBox em PyQt5. O texto dado - Select This. será exibido ao lado do quadrado oco CheckBox.

Exemplo em PyQt5 CheckBox

Evento CheckBox

Basicamente um usuário deve marcar ou desmarcar a caixa de seleção, então a ação deve ser executada com base no sinal de mudança de estado.

CheckBox_Event.py
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)

Nós conectamos o método de slot checkBoxChangeAction() ao sinal CheckBox stateChanged. Toda vez que o usuário marcar ou desmarcar a caixa de verificação, ela irá chamar checkBoxChangeAction().

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

O argumento state é o estado da CheckBox passado e o texto labelA mudará para Selected. se a CheckBox estiver marcada, ou para Not Selected. se estiver desmarcada.

Evento da CheckBox PyQt5