PyQt5 Tutorial - CheckBox

  1. CheckBox Beispiel
  2. CheckBox Event

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

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

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.

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)

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