PySide

From FreeCAD Documentation
Revision as of 22:59, 10 February 2020 by FuzzyBot (talk | contribs) (Updating to match new version of source page)
Pivy/de
Scripted objects/de

PySide

PySide ist eine Anbindung für Python an die Plattform übergreifende Qt-Bibliothek zur Erstellung von grafischen Benutzeroberflächen. FreeCAD verwendet PySide an allen Stellen, an denen von Python aus die grafische Benutzeroberfläche verwendet wird. PySide ist eine Alternative für die PyQt-Bibliothek mit einer weniger strikten Lizenz. PyQt wurde in vorherigen Versionen von FreeCAD verwendet. Siehe Differences Between PySide and PyQt für weitere Informationen zu den Unterschieden zwischen beiden Bibliotheken.

PySide in FreeCAD with Qt5

FreeCAD was developed to be used with Python 2 and Qt4. As these two libraries became obsolete, FreeCAD transitioned to Python 3 and Qt5. In most cases this transition was done without needing to break backwards compatibility.

Normally, the PySide module provides support for Qt4, while PySide2 provides support for Qt5. However, in FreeCAD, there is no need to use PySide2 directly, as a special PySide module is included to handle Qt5.

This PySide module is located in the Ext/ directory of an installation of FreeCAD compiled for Qt5.

/usr/share/freecad/Ext/PySide

This module just imports the necessary classes from PySide2, but places them in the PySide namespace. This means that in most cases the same code can be used with both Qt4 and Qt5, as long as it imports PySide.

PySide2.QtCore -> PySide.QtCore
PySide2.QtGui -> PySide.QtGui
PySide2.QtSvg -> PySide.QtSvg
PySide2.QtUiTools -> PySide.QtUiTools

The only unusual aspect is that the PySide2.QtWidgets classes are placed in the PySide.QtGui namespace.

PySide2.QtWidgets.QCheckBox -> PySide.QtGui.QCheckBox

PySide information

Oft kann man mit FreeCAD alles notwendige mit den vorhandenen Werkzeugen erreichen. Für Anwender, die ihren Arbeitsvorgänge an ihre speziellen Bedürfnisse anpassen möchten, gibt es die Scriptsprache Python. Eine Einführung in Python gibt das Python Scripting Tutorial. Der Zugriff mit Python auf FreeCAD ist sehr flexibel und weitreichend. Die Benutzerinteraktion erfolgt mit FreeCAD erfolgt von Python aus mit PySide. Davon handelt diese Einführung.

Python besitzt für nicht grafische Interaktion die 'print' Anweisung, die wie folgt kodiert wird:

print 'Hello World'

Die print-Anweisung von Python erlaubt nur eine begrenzten Einfluss auf das Aussehen und das Verhalten. PySide liefert die fehlende Kontrollmöglichkeiten und steht für verschiedene Umgebungen, wie die Makroumgebung zur Verfügung, wo die eingebauten Fähigkeiten zur grafischen Interaktion nicht ausreichen.

PySides Fähigkeiten reichen von:

bis:

Die zu behandelnde Materie wird dabei auf drei Teile aufgeteilt, die sich in der Detailtiefe unterscheiden mit der PySide, Python und die FreeCAD-Interna dargestellt werden. Der erste Teil enthält einen Überblick und Hintergrundmaterial zu PySide und wie es funktioniert, während der zweite und dritte Teil hauptsächlich Beispiele für Programmcode auf verschiedenen Leveln enthalten.

Die Intention ist, dass die zugehörigen Seiten einfachen Pythoncode zur Anwendung von PySide vorstellen, der es einem Anwender erlaubt, sein Problem durch einfaches Kopieren und Einfügen der Beispiele zu lösen, ohne allzusehr von der eigentlichen Aufgabenstellung in FreeCAD abzulenken. Gegebenenfalls sind nur noch kleinere Anpassungen vorzunehmen. Die Hoffnung ist, dass damit nicht mehr das ganze Internet auf der Suche nach Antworten auf PySide-Fragen durchforstet werden muss. Gleichzeitig sollen jedoch damit nicht die zahlreichen im Web vorhandenen kompakten PySide-Tutorials und Dokumentationsseiten überflüssig gemacht werden.

Pivy/de
Scripted objects/de