Qt will Python-Anbindung stärken

Die Programmiersprache Python soll neben C++ eine stärkere Bedeutung für das Cross-Plattform-Framework bekommen.

In Pocket speichern vorlesen Druckansicht 9 Kommentare lesen
Qt will Python-Anbindung stärken
Lesezeit: 4 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Die Qt Company gibt Entwicklern erneut einen Einblick in die technischen Zukunftspläne für das Qt Framework. Nachdem Anfang August die kommende Hauptversion im Fokus stand, veröffentlicht das Unternehmen nun die Pläne für die weitere Integration von Python. Ziel ist unter anderem die bessere Einbindung von Tools und die Integration mit verbreiteten Bibliotheken. Außerdem sollen Python-Entwickler besser auf die ihnen gewohnte Art arbeiten können.

Qt for Python ist erstmals zusammen mit Python 5.12 im Dezember als Preview-Variante erschienen und gilt seit Mitte Dezember als stabil. Historisch geht es bereits auf die Nokia-Zeiten von Qt zurück. Damals entstand mit PySide eine Anbindung für Python an das Cross-Plattform-Werkzeug. Mit dem Kauf des Frameworks durch Digia und dem Wechsel von Qt 4 auf Qt 5 ließ die Arbeit an der Anbindung jedoch nach.

Die Downloads von Pyside2 bei PyPi haben seit dem ersten stabilen Release von Qt for Python deutlich zugenommen.

(Bild: Qt Company)

Der Weg zu PySide2 und der Anbindung an Qt 5 mit dem offiziellen Toolkit Qt for Python war laut den Entwicklern entsprechend aufwändig. Das soll sich allerdings mit dem Release von Qt 6 grundlegend ändern. Bereits in den Plänen zur kommenden Hauptversion hat die Qt Company die künftige Integration vorgestellt. Die Python-Integration soll nicht mehr hinterherlaufen, sondern parallel zu C++ und der Skriptsprache QML (Qt Meta-object Language) wachsen.

Die Qt Company hat dabei auch die Python-Anbindung PyQt von Riverbank Computing im Blick. Das Team hat bereits seit den früheren Zeiten von PySide stets darauf geachtet, dass die beiden Erweiterungen Source-kompatibel sind. Außerdem haben wohl zahlreiche PyQt-Nutzer geschrieben, dass die beiden Anbindungen so ähnlich seien, dass sie sich vor allem in den Import-Namen unterscheiden.

Die Macher der Python-Anbindung haben nicht nur diejenigen im Blick, die auf die Programmiersprache setzen, sondern auch die klassische Klientel der C++-Entwickler. Sie können die Python-Module unter anderem zum Ausprobieren mit leicht zu erstellenden Prototypen nutzen, die sie anschließend in C++ umsetzen. Außerdem können sie die beiden Programmiersprachen verbinden, indem sie einen Python-Interpreter in eine C++-Anwendung einbinden.

Eine Qt/C++-Anwendung kann einen Python-Interpreter einbinden, um Python-Code auszuführen.

(Bild: Qt Company)

Python-Entwickler finden in Qt ein Cross-Plattform-Framework zum Erstellen grafischer Benutzeroberflächen. Außerdem können sie ihre Python-Programme an C++-Projekte unter anderem über Shiboken anbinden.

Mittelfristig plant das Team einige Anpassungen und Verbesserungen für Qt for Python. Unter dem Schlagwort Pythonization sollen APIs entstehen, die sich für Python-Entwickler nativ anfühlen, statt schlicht einen Zugriff auf die C++-APIs mit dem zugehörigen Boilerplate-Code zu geben. Dabei soll es durchaus Änderungen bei den Namen in der Qt-API aus Python-Sicht geben. Unter anderem soll execute() das bisherige exec_() ersetzen. Außerdem entstehen neue Widgets und Utilitys speziell für den Einsatz mit Python. Dabei steht unter anderem die direkte Integration verbreiteter Python-Bibliotheken wie NumPy und Pandas im Fokus.

(Bild: Qt Company)

Auch beim Tooling ist eine native Anbindung an PySide für Werkzeuge wie uic und rcc geplant, statt auf Wrapper zu setzen. Bei der Weiterentwicklung von Shiboken steht vor allem die komplette Unterstützung von Qt 6 auf der Aufgabenliste. Hinsichtlich der eigentlichen Python-Editionen schneidet die Qt Company alte Zöpfe ab und wird für die PySide-Integration in Qt 6 Python 2 nicht weiter unterstützen, das ohnehin Anfang 2020 End of Life erreicht. Die Versionsnummern von PySide sollen künftig denen der zugehörigen Qt-Releases entsprechen.

Weitere Details zu der Zukunft von Python in Qt lassen sich dem Qt-Blog entnehmen. Eine detaillierte Liste der geplanten Änderungen für PySide ist als JIRA Issue abgelegt. (rme)