PyQt5 Tutorial - CheckBox

Jinku Hu 15 Februar 2024
  1. CheckBox Beispiel
  2. CheckBox Event
PyQt5 Tutorial - CheckBox

In diesem Tutorial werden wir QCheckBox in PyQt5 lernen. Eine QCheckBox ist ein Optionsbutton, der an- oder abgewählt werden kann. Der Benutzer kann mehrere Optionen aus der Checkbox-Gruppe auswählen.

CheckBox Beispiel

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

Wo,

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

self.checkBoxA ist eine Instanz des QCheckBox Widgets in PyQt5. Der angegebene Text - Select This. wird neben dem CheckBox-Hohlquadrat angezeigt.

PyQt5 CheckBox Beispiel

CheckBox Event

Grundsätzlich sollte ein Benutzer die Checkbox an- oder abwählen, dann sollte die Aktion auf Basis des Zustandsänderungssignals durchgeführt werden.

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)

Wir verbinden die Slotmethode checkBoxChangeAction() mit dem CheckBox stateChanged Signal. Jedes Mal, wenn der Benutzer die Checkbox an- oder abwählt, wird die Methode checkBoxChangeAction() aufgerufen.

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

Das Argument state ist der Zustand der übergebenen CheckBox und der Text labelA ändert sich zu Selected., wenn die CheckBox angehakt ist, oder zu Not Selected., wenn sie nicht angehakt ist.

PyQt5-CheckBox-Ereignis

Autor: 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