In einer Reihe von Blogposts wollen wir uns mit Qt for Python alias Pyside6 befassen. Qt for Python erlaubt uns das Programmieren von grafischen Oberflächen unter Python. Zwar ist Qt for Python nicht ansatzweise so verbreitet wie Qt for C++, jedoch schon sehr gut entwickelt und dokumentiert.
Qt for C+++
Qt ist eine beliebte C++ Erweiterung, welche eine plattformunabhängige GUI ermöglicht. Viele C++ Projekte basieren darauf, sowohl kommerzielle als auch freie Software. Zu den bekanntesten zählt sicher der KDE Linux Desktop, aber auch die beliebte MCAD Software FreeCAD.
Qt for Python alias PySide
PySide6 bietet die Möglichkeit Qt Oberflächen in Python zu programmieren. Dafür sind keine C++ Kenntnisse notwendig. PySide6 wird zum Beispiel im FreeCAD Projekt verwendet.
Hello World
Wir wollen mit einer kleinen Applikation starten. Das Ziel ist das Erzeugen eines Fensters mit einem Textlabel im Zentrum. Die folgende Applikation kann als Minimal-Beispiel angesehen werden.
import sys
from PySide6.QtCore import QSize, Qt
from PySide6.QtWidgets import QApplication, QMainWindow, QLabel
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setMinimumSize(500, 250)
self.setWindowTitle("Cybernetics")
= QLabel()
l1 "Hello Cybernetics!")
l1.setText(
l1.setAlignment(Qt.AlignCenter)
self.setCentralWidget(l1)
if __name__ == "__main__":
= QApplication(sys.argv)
app
= MainWindow()
window
window.show()
exec() app.
Das Ergebnis sieht dann wie folgt aus.
Das Erstellen eines Fensters ist also ganz einfach. Qt6/PySide6 bietet uns aber eine beinahe unendliche Anzahl an Möglichkeiten, grafische Oberflächen zu gestalten.
Qt5/PySide2 oder Qt6/PySide6
Die Nummerierung der C++ Version und der Python Version waren bis zur Version 6 unterschiedlich:
- Qt4/PySide
- Qt5/PySide2
- Qt6/PySide6
Viele Projekte setzen derzeit noch Qt5 bzw. PySide2 ein. Zum Beispiel basiert KDE Plasma 5 noch auf Qt 5.x. KDE Plasma 6 welche dann auf Qt6 basiert, wurde im Oktober 2022 für das Jahr 2023 angekündigt. Auch FreeCad benutzt noch Qt 5.x und PySide2. Wenn also Projekte begonnen werden, welche schon in kurzer Zeit einsatzbereit sein sollen, dann empfiehlt sich immer noch der Einsatz von Qt5/PySide2. Langfristige Projekte sollten mit Qt6/Pyside6 gestartet werden. Die meisten Projekte werden wohl in den Jahren 2024 bzw. 2025 auf Qt6/PySide6 wechseln.
Fazit
Die offizielle Seite Python for Qt liefert für den Einstieg sehr viel Material. Der Sourcecode von Pyside6 ist auf Github unter dem Link einsehbar.