PyQt5 Tutorial - CheckBox

Jinku Hu 15 febbraio 2024
  1. Esempio di CheckBox
  2. Evento CheckBox
PyQt5 Tutorial - CheckBox

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

Autore: 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 Facebook