TUTORIAL

Tutoriel PyQt5 - CheckBox

Ce tutoriel présente le widget QCheckbox de PyQt5 avec des exemples, comme comment créer la case à cocher et comment ajouter un slot au signal stateChanged de la case à cocher.

Sur cette page

Dans ce tutoriel, nous allons apprendre QCheckBox dans PyQt5. Une QCheckBox est un bouton d’option qui peut être coché ou décoché. L’utilisateur peut cocher plusieurs options du groupe de cases à cocher.

Exemple 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_())

Où,

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

self.checkBoxA est une instance du widget QCheckBox dans PyQt5. Le texte donné - Select This. sera affiché à côté du carré creux CheckBox.

Exemple de CheckBox PyQt5

Événement CheckBox

Fondamentalement, un utilisateur doit cocher ou décocher la case, puis l’action doit être effectuée en fonction du signal de changement d’état.

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)

Nous connectons la méthode de slot checkBoxChangeAction() au signal CheckBox stateChanged. Chaque fois que l’utilisateur cochera ou décochera la case, il appellera checkBoxChangeAction().

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

L’argument state est l’état de la CheckBox passée et le texte labelA changera en Selected. si la CheckBox est cochée, ou en Not Selected. si elle est décochée.

Événement CheckBox PyQt5