PySide
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:
- Beginner PySide Examples (Hello World, announcements, enter text, enter number)
- Medium PySide Examples (window sizing, hiding widgets, popup menus, mouse position, mouse events)
- Advanced PySide Examples (widgets etc.)
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.
- Erste Schritte
- Installation: Herunterladen, Windows, Linux, Mac, Zusätzlicher Komponenten, Docker, AppImage, Ubuntu Snap
- Grundlagen: Über FreeCAD, Graphische Oberfläche, Mausbedienung, Auswahlmethoden, Objektname, Programmeinstellungen, Arbeitsbereiche, Dokumentstruktur, Objekteigenschaften, Hilf FreeCAD, Spende
- Hilfe: Tutorien, Video Tutorien
- Arbeitsbereiche: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework