Was ist PyQt5 und wofür wird es verwendet?
PyQt5 ist eine Sammlung von Python-Bindungen für die Qt-Bibliothek. Es ist eines der beliebtesten Werkzeuge zur Erstellung plattformunabhängiger grafischer Benutzeroberflächen. Mit PyQt5 können Entwickler professionelle Desktop-Anwendungen mit modernem Design und umfangreichen Funktionen erstellen.
Die wichtigsten Funktionen von PyQt5
PyQt5 bietet Entwicklern eine breite Palette an Möglichkeiten:
- Viele vorgefertigte Widgets über das Modul QtWidgets
- Unterstützung für Fenster, Schaltflächen, Eingabefelder und Listen
- Implementierung eines Signal-Slot-Systems für ereignisorientierte Programmierung
- Integration mit grafischen Elementen über QGraphicsView
- Anpassung von Oberflächen mit Stylesheets
- Unterstützung mehrerer Betriebssysteme
Installation der PyQt5-Bibliothek
Verwende den Paketmanager pip, um PyQt5 zu installieren:
pip install PyQt5
Erstellen eines einfachen Anwendungsfensters
Jede PyQt5-Anwendung beginnt mit der Erstellung eines QApplication-Objekts. Dies ist das Hauptobjekt der Anwendung, das alle Fenster und Ereignisse verwaltet. Das Hauptfenster wird auf Basis von QWidget erstellt.
import sys
from PyQt5.QtWidgets import QApplication, QWidget
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Einfaches Fenster")
window.resize(300, 200)
window.show()
sys.exit(app.exec_())
QApplication ist ein obligatorischer Bestandteil jeder GUI-Anwendung mit PyQt5. Es verarbeitet Systemereignisse und verwaltet den Lebenszyklus der Anwendung.
Arbeiten mit grundlegenden Steuerelementen
QLineEdit - Texteingabefeld
QLineEdit ist ein einzeiliges Texteingabefeld. Dieses Widget wird häufig verwendet, um Benutzereingaben zu erfassen.
from PyQt5.QtWidgets import QLineEdit, QVBoxLayout, QPushButton
window = QWidget()
window.setWindowTitle("QLineEdit Beispiel")
layout = QVBoxLayout()
line_edit = QLineEdit()
line_edit.setPlaceholderText("Gib deinen Namen ein")
button = QPushButton("Senden")
def on_click():
print(f"Hallo, {line_edit.text()}!")
button.clicked.connect(on_click)
layout.addWidget(line_edit)
layout.addWidget(button)
window.setLayout(layout)
window.show()
Das Eingabefeld unterstützt verschiedene Methoden zur Textbearbeitung:
- setText() - Text programmatisch setzen
- text() - eingegebenen Text abrufen
- setPlaceholderText() - Platzhaltertext festlegen
- setMaxLength() - maximale Eingabelänge begrenzen
QComboBox - Dropdown-Listen erstellen
QComboBox ermöglicht dem Benutzer die Auswahl einer Option aus einer Liste.
from PyQt5.QtWidgets import QComboBox
combo = QComboBox()
combo.addItems(["Option wählen", "Python", "C++", "JavaScript"])
def on_selection_change(value):
print(f"Du hast gewählt: {value}")
combo.currentTextChanged.connect(on_selection_change)
layout.addWidget(combo)
QComboBox bietet mehrere nützliche Methoden:
- addItem() - ein einzelnes Element hinzufügen
- addItems() - eine Liste von Elementen hinzufügen
- currentText() - den ausgewählten Text abrufen
- currentIndex() - den Index des ausgewählten Elements abrufen
- clear() - alle Elemente löschen
QCheckBox - Kontrollkästchen und Signale verwenden
QCheckBox ermöglicht dem Benutzer, eine Option auszuwählen oder die Auswahl aufzuheben.
from PyQt5.QtWidgets import QCheckBox
checkbox = QCheckBox("Ich stimme den Bedingungen zu")
def on_checkbox_state(state):
if state:
print("Kontrollkästchen ist aktiviert")
else:
print("Kontrollkästchen ist deaktiviert")
checkb