Qt for Python alias PySide6

Python
PySide6
Autor:in

Johannes Kaisinger

Veröffentlichungsdatum

12. Oktober 2022

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")

        l1 = QLabel()
        l1.setText("Hello Cybernetics!")
        l1.setAlignment(Qt.AlignCenter)

        self.setCentralWidget(l1)

if __name__ == "__main__":
    app = QApplication(sys.argv)

    window = MainWindow()
    window.show()

    app.exec()

Das Ergebnis sieht dann wie folgt aus.

Hello World

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.

Referenzen