TUTORIAL

PyQt5 Tutorial - CheckBox

Questo tutorial introduce il widget PyQt5 QCheckbox con esempi, come ad esempio come creare la checkbox e come aggiungere slot alla checkbox stateChanged signal.

In questa pagina

In questo tutorial impareremo QCheckBox in PyQt5. Un QCheckBox è un pulsante di opzione che può essere selezionato o deselezionato. L’utente può selezionare più opzioni dal gruppo di checkbox.

Esempio di 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_())

Dove,

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

self.checkBoxA è un’istanza del widget QCheckBox in PyQt5. Il testo dato - Select This. verrà visualizzato accanto al quadrato cavo CheckBox.

Esempio di PyQt5 CheckBox

Evento CheckBox

Fondamentalmente un utente dovrebbe selezionare o deselezionare la casella di controllo, poi l’azione dovrebbe essere eseguita in base al segnale di cambio di stato.

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)

Colleghiamo il metodo dello slot checkBoxChangeAction() al segnale CheckBox stateChanged. Ogni volta che l’utente spunta o deseleziona la casella di controllo, chiamerà checkBoxChangeAction().

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

L’argomento state è lo stato del CheckBox passato e il testo labelA cambierà in Selected. se il CheckBox è spuntato, o in Not Selected. se è deselezionato.

Evento CheckBox PyQt5