PyQt5 Tutorials

PyQt5 Radiobuttons: Die umfassende Anleitung

Spread the love

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:

  1. Einfaches QRadioButton-Beispiel
  2. Die setChecked-Methode
  3. Erstellen von Radiobutton-Gruppen
  4. 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert