PySide/de: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
(38 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<div class="mw-translate-fuzzy">
{{docnav/de|Pivy/de|Scripted objects/de}}
</div>


{{TOCright}}
<div class="mw-translate-fuzzy">

==PySide==
==Einführung==
</div>

Die [[PySide|PySide]] Bibliothek ermöglicht den Zugriff auf das plattformübergreifende GUI Werkzeugsatz Qt von [[Python/de|Python]]. Qt ist eine Sammlung von C++ Bibliotheken, aber mit Hilfe von PySide können die gleichen Komponenten von [[Python/de|Python]] aus verwendet werden. Jede grafische Oberfläche, die in C++ erstellt werden kann, kann auch in Python erstellt und modifiziert werden. Ein Vorteil der Verwendung von Python ist, dass Qt Oberflächen entwickelt und live getestet werden können, da wir die Quelldateien nicht kompilieren müssen.


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Wenn du FreeCAD [[Installing/de|Installierst]] , solltest du sowohl Qt als auch PySide als Teil des Pakets erhalten. Wenn du selbst [[Compiling/de|Kompilierst]], dann musst du überprüfen, ob diese beiden Bibliotheken installiert sind, damit FreeCAD korrekt läuft. Natürlich wird PySide nur funktionieren, wenn Qt vorhanden ist.
[http://en.wikipedia.org/wiki/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 [http://qt-project.org/wiki/Differences_Between_PySide_and_PyQt Differences Between PySide and PyQt] für weitere Informationen zu den Unterschieden zwischen beiden Bibliotheken.
</div>
</div>


In der Vergangenheit benutzte FreeCAD PyQt, eine weitere Qt Bindung für Python, aber 2013 ([https://github.com/FreeCAD/FreeCAD/commit/1dc122dc9a 1dc122dc9a]) migrierte das Projekt zu PySide, weil es eine zulässigere [[licence/de|Lizenz]] hat.
== PySide in FreeCAD with Qt5 ==


Für weitere Informationen siehe:
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.
* [http://en.wikipedia.org/wiki/PySide Wikipedia:PySide]
* [http://qt-project.org/wiki/Differences_Between_PySide_and_PyQt Unterschiede zwischen PySide und PyQt]


[[File:PySideScreenSnapshot1.jpg]] [[File:PySideScreenSnapshot2.jpg]]
Normally, the {{incode|PySide}} module provides support for Qt4, while {{incode|PySide2}} provides support for Qt5. However, in FreeCAD, there is no need to use {{incode|PySide2}} directly, as a special {{incode|PySide}} module is included to handle Qt5.
{{Caption|Mit PySide erstellte Beispiele. Links: ein einfacher Dialog. Rechts: ein komplexerer Dialog mit Diagrammen.}}


==PySide in FreeCAD mit Qt5==
This {{incode|PySide}} module is located in the {{incode|Ext/}} directory of an installation of FreeCAD compiled for Qt5.

FreeCAD wurde für die Verwendung mit Python 2 und Qt4 entwickelt. Als diese beiden Bibliotheken veraltet waren, wurde FreeCAD auf Python 3 und Qt5 umgestellt. In den meisten Fällen erfolgte dieser Übergang, ohne dass die Rückwärtskompatibilität unterbrochen werden musste.

Normalerweise bietet das {{incode|PySide}} Modul Unterstützung für Qt4, während {{incode|PySide2}} Unterstützung für Qt5 bietet. In FreeCAD ist es jedoch nicht notwendig, {{incode|PySide2}} direkt zu verwenden, da ein spezielles {{incode|PySide}} Modul enthalten ist, um Qt5 zu behandeln.

Dieses {{incode|PySide}} Modul befindet sich im {{incode|Ext/}} Verzeichnis einer für Qt5 kompilierten FreeCAD Installation.
{{Code|code=
{{Code|code=
/usr/share/freecad/Ext/PySide
/usr/share/freecad/Ext/PySide
}}
}}


This module just imports the necessary classes from {{incode|PySide2}}, but places them in the {{incode|PySide}} namespace. This means that in most cases the same code can be used with both Qt4 and Qt5, as long as it imports {{incode|PySide}}.
Dieses Modul importiert einfach die erforderlichen Klassen aus {{incode|PySide2}}, platziert sie aber im {{incode|PySide}} Namensraum. Das bedeutet, dass in den meisten Fällen derselbe Code sowohl mit Qt4 als auch mit Qt5 verwendet werden kann, solange wir das einzelne {{incode|PySide}} Modul verwenden.
{{Code|code=
{{Code|code=
PySide2.QtCore -> PySide.QtCore
PySide2.QtCore -> PySide.QtCore
Line 31: Line 39:
}}
}}


The only unusual aspect is that the {{incode|PySide2.QtWidgets}} classes are placed in the {{incode|PySide.QtGui}} namespace.
Der einzige ungewöhnliche Aspekt ist, dass die {{incode|PySide2.QtWidgets}} Klassen im {{incode|PySide.QtGui}} Namensraum platziert werden.
{{Code|code=
{{Code|code=
PySide2.QtWidgets.QCheckBox -> PySide.QtGui.QCheckBox
PySide2.QtWidgets.QCheckBox -> PySide.QtGui.QCheckBox
}}
}}


[[#top|Anfang]]
== PySide information ==


==Beispiele für PySide Verwendung==
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/de|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.


* [[PySide_Beginner_Examples/de|PySide Anfänger Beispiele]], Hallo Welt, Ankündigungen, Text eingeben, Nummer eingeben.
Python besitzt für nicht grafische Interaktion die 'print' Anweisung, die wie folgt kodiert wird:
* [[PySide_Intermediate_Examples/de|PySide Beispiele für Fortgeschrittene]], Fenstergröße, Widgets ausblenden, Aufklappmenüs, Mausposition, Mausereignisse.
{{Code|code=
* [[PySide_Advanced_Examples/de|PySide Zwischenbeispiele]], viele Widgets.
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.


Die Beispiele von PySide sind in 3 Teile unterteilt, die sich nach dem Grad der Exposition gegenüber PySide, Python und den FreeCAD Interna unterscheiden. Die erste Seite gibt einen Überblick über PySide; die zweite und dritte Seite sind meist Code Beispiele auf verschiedenen Niveaus.
PySides Fähigkeiten reichen von:


Es wird erwartet, dass diese Beispiele für den Anfang nützlich sind, und danach kann der Benutzer andere Ressourcen online oder die offizielle Dokumentation hinzuziehen.
[[File:PySideScreenSnapshot1.jpg]]


[[#top|Anfang]]
bis:


==Dokumentation==
[[File:PySideScreenSnapshot2.jpg]]


Es gibt einige Unterschiede in der Behandlung von Widgets in Qt4 (PySide) und Qt5 (PySide2). Der Programmierer sollte sich dieser Inkompatibilitäten bewusst sein und die offizielle Dokumentation konsultieren, wenn etwas auf einer bestimmten Plattform nicht wie erwartet zu funktionieren scheint. Nichtsdestotrotz wird Qt4 als veraltet angesehen, so dass die meiste Entwicklung auf Qt5 und Python 3 abzielen sollte.
<div class="mw-translate-fuzzy">
* [[PySide_Beginner_Examples|Beginner PySide Examples]] (Hello World, announcements, enter text, enter number)
* [[PySide_Medium_Examples|Medium PySide Examples]] (window sizing, hiding widgets, popup menus, mouse position, mouse events)
* [[PySide_Advanced_Examples|Advanced PySide Examples]] (widgets etc.)
</div>


Die PySide Dokumentation bezieht sich auf die Klassen im Python Stil; da Qt jedoch ursprünglich eine C++ Bibliothek ist, sollten dieselben Informationen auch in der entsprechenden C++ Referenz verfügbar sein.
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.
* [https://doc.qt.io/qtforpython/modules.html Qt Module] verfügbar von PySide2 (Qt5).
* [https://doc.qt.io/qt-5/modules-cpp.html Alle Qt Klassen nach Modulen] in Qt5 für C++.
* [https://deptinfo-ensip.univ-poitiers.fr/ENS/pyside-docs/index.html Qt-Module] verfügbar von PySide (Qt4).


[[#top|Anfang]]
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.

<div class="mw-translate-fuzzy">
{{docnav|Pivy/de|Scripted objects/de}}
</div>


{{Userdocnavi{{#translation:}}}}
{{Powerdocnavi{{#translation:}}}}
[[Category:Poweruser Documentation{{#translation:}}]]
[[Category:Developer{{#translation:}}]]
[[Category:Developer Documentation{{#translation:}}]]
[[Category:Developer Documentation{{#translation:}}]]
[[Category:Python Code{{#translation:}}]]
[[Category:Python Code{{#translation:}}]]

Revision as of 21:24, 6 January 2021

Einführung

Die PySide Bibliothek ermöglicht den Zugriff auf das plattformübergreifende GUI Werkzeugsatz Qt von Python. Qt ist eine Sammlung von C++ Bibliotheken, aber mit Hilfe von PySide können die gleichen Komponenten von Python aus verwendet werden. Jede grafische Oberfläche, die in C++ erstellt werden kann, kann auch in Python erstellt und modifiziert werden. Ein Vorteil der Verwendung von Python ist, dass Qt Oberflächen entwickelt und live getestet werden können, da wir die Quelldateien nicht kompilieren müssen.

Wenn du FreeCAD Installierst , solltest du sowohl Qt als auch PySide als Teil des Pakets erhalten. Wenn du selbst Kompilierst, dann musst du überprüfen, ob diese beiden Bibliotheken installiert sind, damit FreeCAD korrekt läuft. Natürlich wird PySide nur funktionieren, wenn Qt vorhanden ist.

In der Vergangenheit benutzte FreeCAD PyQt, eine weitere Qt Bindung für Python, aber 2013 (1dc122dc9a) migrierte das Projekt zu PySide, weil es eine zulässigere Lizenz hat.

Für weitere Informationen siehe:

Mit PySide erstellte Beispiele. Links: ein einfacher Dialog. Rechts: ein komplexerer Dialog mit Diagrammen.

PySide in FreeCAD mit Qt5

FreeCAD wurde für die Verwendung mit Python 2 und Qt4 entwickelt. Als diese beiden Bibliotheken veraltet waren, wurde FreeCAD auf Python 3 und Qt5 umgestellt. In den meisten Fällen erfolgte dieser Übergang, ohne dass die Rückwärtskompatibilität unterbrochen werden musste.

Normalerweise bietet das PySide Modul Unterstützung für Qt4, während PySide2 Unterstützung für Qt5 bietet. In FreeCAD ist es jedoch nicht notwendig, PySide2 direkt zu verwenden, da ein spezielles PySide Modul enthalten ist, um Qt5 zu behandeln.

Dieses PySide Modul befindet sich im Ext/ Verzeichnis einer für Qt5 kompilierten FreeCAD Installation.

/usr/share/freecad/Ext/PySide

Dieses Modul importiert einfach die erforderlichen Klassen aus PySide2, platziert sie aber im PySide Namensraum. Das bedeutet, dass in den meisten Fällen derselbe Code sowohl mit Qt4 als auch mit Qt5 verwendet werden kann, solange wir das einzelne PySide Modul verwenden.

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

Der einzige ungewöhnliche Aspekt ist, dass die PySide2.QtWidgets Klassen im PySide.QtGui Namensraum platziert werden.

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

Anfang

Beispiele für PySide Verwendung

Die Beispiele von PySide sind in 3 Teile unterteilt, die sich nach dem Grad der Exposition gegenüber PySide, Python und den FreeCAD Interna unterscheiden. Die erste Seite gibt einen Überblick über PySide; die zweite und dritte Seite sind meist Code Beispiele auf verschiedenen Niveaus.

Es wird erwartet, dass diese Beispiele für den Anfang nützlich sind, und danach kann der Benutzer andere Ressourcen online oder die offizielle Dokumentation hinzuziehen.

Anfang

Dokumentation

Es gibt einige Unterschiede in der Behandlung von Widgets in Qt4 (PySide) und Qt5 (PySide2). Der Programmierer sollte sich dieser Inkompatibilitäten bewusst sein und die offizielle Dokumentation konsultieren, wenn etwas auf einer bestimmten Plattform nicht wie erwartet zu funktionieren scheint. Nichtsdestotrotz wird Qt4 als veraltet angesehen, so dass die meiste Entwicklung auf Qt5 und Python 3 abzielen sollte.

Die PySide Dokumentation bezieht sich auf die Klassen im Python Stil; da Qt jedoch ursprünglich eine C++ Bibliothek ist, sollten dieselben Informationen auch in der entsprechenden C++ Referenz verfügbar sein.

Anfang