Dieses Tutorial bietet eine umfassende Anleitung zur Verwendung des QRadioButton
-Widgets von PyQt5. Wir behandeln die Grundlagen, untersuchen die setChecked
-Methode und gehen tiefer in die Erstellung von Radiobutton-Gruppen für die gegenseitig ausschließende Auswahl ein. Los geht’s!
Inhaltsverzeichnis:
- Einfaches
QRadioButton
-Beispiel - Die
setChecked
-Methode - Erstellen von Radiobutton-Gruppen
- Verarbeitung der Benutzerauswahl
1. Einfaches QRadioButton
-Beispiel
Mit QRadioButton
können Benutzer eine Option aus einer Menge auswählen. Hier ist ein einfaches Beispiel:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("PyQt5 QRadioButton Beispiel")
layout = QVBoxLayout()
label = QLabel("Wählen Sie eine Option:")
layout.addWidget(label)
radio1 = QRadioButton("Option 1")
radio2 = QRadioButton("Option 2")
radio3 = QRadioButton("Option 3")
layout.addWidget(radio1)
layout.addWidget(radio2)
layout.addWidget(radio3)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())
Dies erstellt drei unabhängige Radiobuttons. Um zu prüfen, welcher ausgewählt ist, verwenden Sie die isChecked()
-Methode.
2. Die setChecked
-Methode
Wählen Sie einen Radiobutton programmgesteuert mit setChecked(True)
aus oder deaktivieren Sie ihn mit setChecked(False)
.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout, QPushButton
# ... (vorheriger Code) ...
button = QPushButton("Option 2 auswählen")
button.clicked.connect(lambda: radio2.setChecked(True))
layout.addWidget(button)
# ... (Rest des Codes) ...
Dies fügt einen Button hinzu, der „Option 2“ bei Klick auswählt.
3. Erstellen von Radiobutton-Gruppen
Für die gegenseitig ausschließende Auswahl verwenden Sie QButtonGroup
. Dies stellt sicher, dass immer nur ein Button in der Gruppe ausgewählt werden kann.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout, QButtonGroup
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("PyQt5 QRadioButton Gruppenbeispiel")
layout = QVBoxLayout()
label = QLabel("Wählen Sie eine Option:")
layout.addWidget(label)
button_group = QButtonGroup()
radio1 = QRadioButton("Option 1")
radio2 = QRadioButton("Option 2")
radio3 = QRadioButton("Option 3")
button_group.addButton(radio1, 1)
button_group.addButton(radio2, 2)
button_group.addButton(radio3, 3)
layout.addWidget(radio1)
layout.addWidget(radio2)
layout.addWidget(radio3)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())
4. Verarbeitung der Benutzerauswahl
Verarbeiten Sie die Benutzerauswahl effizient mit dem buttonClicked
-Signal:
button_group.buttonClicked.connect(lambda button: print(f"Ausgewählte Option: {button_group.id(button)}"))
Dies gibt die ID (zugewiesen beim Hinzufügen zur Gruppe) des ausgewählten Buttons aus. Ersetzen Sie die print
-Anweisung durch Ihre gewünschte Aktion.
Dieser verbesserte Ansatz vermeidet das manuelle Überprüfen des Zustands jedes Buttons und bietet eine robustere und organisiertere Lösung für die Verwaltung der Radiobutton-Auswahl in Ihren PyQt5-Anwendungen.