PySide/it: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Created page with "La documentazione di PySide fa riferimento alle classi in stile Python; tuttavia, poiché Qt è originariamente una libreria C++, le stesse informazioni dovrebbero essere disp...")
 
(72 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<H2>PySide</H2>


{{docnav/it
[http://en.wikipedia.org/wiki/PySide PySide] is a Python binding of the cross-platform GUI toolkit Qt. FreeCAD uses PySide for all GUI (Graphic User Intercase) purposes. PySide evolved from the PyQt package which was previously used by FreeCAD for it's GUI. See [http://qt-project.org/wiki/Differences_Between_PySide_and_PyQt Differences Between PySide and PyQt] for more information on the differences.
|[[Pivy/it|Pivy]]
|[[Interface_creation/it|Creare l'interfaccia]]
}}


{{TOCright}}
Users of FreeCAD often achieve everything using the built-in interface. But for users who want to customise their operations then the Python interface exists which is documented in the [[Python_scripting_tutorial|Python Scripting Tutorial]]. The Python interface for FreeCAD had great flexibility and power. For it's user interaction Python with FreeCAD uses PySide, which is what is documented on this page.


==Introduzione==
Python offers the 'print' statement which gives the code:

La libreria [[PySide/it|PySide]] dà accesso al toolkit Qt dell'interfaccia utente grafica multipiattaforma (GUI) di [[Python/it|Python]]. Qt è una raccolta di librerie C++, ma con l'aiuto di PySide, gli stessi componenti possono essere usati da [[Python/it|Python]]. Ogni interfaccia grafica che può essere creata in C++, può anche essere creata e modificata in Python. Un vantaggio dell'utilizzo di Python è che le interfacce Qt possono essere sviluppate e testate dal vivo, poiché non è necessario compilare i file sorgente.

Quando si installa FreeCAD, si dovrebbe ottenere sia Qt che PySide come parte del pacchetto. Se si sta [[Compiling/it|compilando]], si deve verificare che queste due librerie siano installate affinché FreeCAD funzioni correttamente. Naturalmente, PySide funzionerà solo se è presente Qt.

In passato, FreeCAD utilizzava PyQt, un'altra associazione Qt per Python, ma nel 2013 ([https://github.com/FreeCAD/FreeCAD/commit/1dc122dc9a commit 1dc122dc9a]) il progetto è migrato a PySide perché ha una [[licence/it|licenza]] più permissiva.

Per ulteriori informazioni, vedere:
* [https://it.wikipedia.org/wiki/PySide Wikipedia:PySide]
* [https://wiki.qt.io/Differences_Between_PySide_and_PyQt Differenze tra PySide e PyQt]

[[File:PySideScreenSnapshot1.jpg]] [[File:PySideScreenSnapshot2.jpg]]
{{Caption|Esempi creati con PySide. A sinistra: una semplice finestra di dialogo. A destra: una finestra di dialogo più complessa con grafici.}}

==PySide in FreeCAD con Qt5==

FreeCAD è stato sviluppato per essere utilizzato con Python 2 e Qt4. Poiché queste due librerie sono diventate obsolete, FreeCAD è passato a Python 3 e Qt5. Nella maggior parte dei casi questa transizione è stata eseguita senza la necessità di interrompere la compatibilità con le versioni precedenti.

Normalmente, il modulo {{incode|PySide}} fornisce il supporto per Qt4, mentre {{incode|PySide2}} fornisce il supporto per Qt5. Tuttavia, in FreeCAD non è necessario utilizzare {{incode|PySide2}} direttamente, poiché è incluso uno speciale modulo {{incode|PySide}} per gestire Qt5.

Questo modulo {{incode|PySide}} si trova nella directory {{incode|Ext/}} di un'installazione di FreeCAD compilata per Qt5.
{{Code|code=
{{Code|code=
/usr/share/freecad/Ext/PySide
print 'Hello World'
}}
}}
With Python's print statement you have only limited control of the appearance and behaviour. PySide supplies the missing control and also handles environments (such as the FreeCAD macro file environment) where the built-in facilities of Python are not enough.


Questo modulo importa solo le classi necessarie da {{incode|PySide2}} e le inserisce nel namespace {{incode|PySide}}. Ciò significa che nella maggior parte dei casi lo stesso codice può essere utilizzato sia con Qt4 che con Qt5, purché utilizziamo il singolo modulo {{incode|PySide}}.
PySide's abilities range from:
{{Code|code=
PySide2.QtCore -> PySide.QtCore
PySide2.QtGui -> PySide.QtGui
PySide2.QtSvg -> PySide.QtSvg
PySide2.QtUiTools -> PySide.QtUiTools
}}


L'unico aspetto insolito è che le classi {{incode|PySide2.QtWidgets}} sono posizionate nel namespace {{incode|PySide.QtGui}}.
[[File:PySideScreenSnapshot1.jpg]]
{{Code|code=
PySide2.QtWidgets.QCheckBox -> PySide.QtGui.QCheckBox
}}
{{Top}}
==Esempi di utilizzo di PySide==


* [[PySide_Beginner_Examples/it|Esempi di livello base di PySide]], Hello World, avvisi, inserire un testo, inserire un numero.
to:
* [[PySide_Intermediate_Examples/it|Esempi di livello medio di PySide]], dimensionare le finestre, nascondere i widget, i menu popup, la posizione del mouse, gli eventi del mouse.
* [[PySide_Advanced_Examples/it|Esempi di livello avanzato di PySide]], widget etc.


Gli esempi di PySide sono divisi in 3 parti, differenziate per livello di esposizione a PySide, Python e alle parti incorporate in FreeCAD. La prima pagina contiene una panoramica e le basi della materia, fornisce una descrizione di PySide e di come è organizzato, mentre la seconda e la terza pagina contengono soprattutto degli esempi di codice di diversi livelli.
[[File:PySideScreenSnapshot2.jpg]]


Si ritiene che questi esempi siano utili per iniziare, dopodiché l'utente potrà consultare altre risorse online o la documentazione ufficiale.
PySide is described in the following 3 pages which should follow on one from each other:
{{Top}}
==Documentazione==


Ci sono alcune differenze nella gestione dei widget in Qt4 (PySide) e Qt5 (PySide2). Il programmatore dovrebbe essere consapevole di queste incompatibilità e dovrebbe consultare la documentazione ufficiale se qualcosa non sembra funzionare come previsto su una data piattaforma. Tuttavia, Qt4 è considerato obsoleto, quindi la maggior parte dello sviluppo dovrebbe mirare a Qt5 e Python 3.
* [[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.)


La documentazione di PySide fa riferimento alle classi in stile Python; tuttavia, poiché Qt è originariamente una libreria C++, le stesse informazioni dovrebbero essere disponibili nel riferimento C++ corrispondente.
They divide the subject matter into 3 parts, differentiated by level of exposure to PySide, Python and the FreeCAD internals. The first page has overview and background material giving a description of PySide and how it is put together while the second and third pages are mostly code examples at different levels.
* [https://doc.qt.io/qtforpython/modules.html Moduli Qt] disponibile da PySide2 (Qt5).
* [https://doc.qt.io/qt-5/modules-cpp.html Tutte le classi Qt per modulo] in Qt5 per C++.
* [https://deptinfo-ensip.univ-poitiers.fr/ENS/pyside-docs/index.html Moduli Qt] disponibile da PySide (Qt4).
{{Top}}


{{docnav/it
The intention is that the associated pages will provide simple Python code to run PySide so that the user working on a problem can easily copy the code, paste it into their own work, adapt it as necessary and return to their problem solving with FreeCAD. Hopefully they don't have to go chasing off across the internet looking for answers to PySide questions. At the same time this page is not intended to replace the various comprehensive PySide tutorials and reference sites available on the web.
|[[Pivy/it|Pivy]]
|[[Interface_creation/it|Creare l'interfaccia]]
}}


{{Powerdocnavi{{#translation:}}}}
{{docnav|Pivy|Scripted objects}}
[[Category:Developer Documentation{{#translation:}}]]

[[Category:Poweruser Documentation]]
[[Category:Python Code{{#translation:}}]]
{{clear}}
<languages/>

Latest revision as of 13:33, 11 December 2022

Introduzione

La libreria PySide dà accesso al toolkit Qt dell'interfaccia utente grafica multipiattaforma (GUI) di Python. Qt è una raccolta di librerie C++, ma con l'aiuto di PySide, gli stessi componenti possono essere usati da Python. Ogni interfaccia grafica che può essere creata in C++, può anche essere creata e modificata in Python. Un vantaggio dell'utilizzo di Python è che le interfacce Qt possono essere sviluppate e testate dal vivo, poiché non è necessario compilare i file sorgente.

Quando si installa FreeCAD, si dovrebbe ottenere sia Qt che PySide come parte del pacchetto. Se si sta compilando, si deve verificare che queste due librerie siano installate affinché FreeCAD funzioni correttamente. Naturalmente, PySide funzionerà solo se è presente Qt.

In passato, FreeCAD utilizzava PyQt, un'altra associazione Qt per Python, ma nel 2013 (commit 1dc122dc9a) il progetto è migrato a PySide perché ha una licenza più permissiva.

Per ulteriori informazioni, vedere:

Esempi creati con PySide. A sinistra: una semplice finestra di dialogo. A destra: una finestra di dialogo più complessa con grafici.

PySide in FreeCAD con Qt5

FreeCAD è stato sviluppato per essere utilizzato con Python 2 e Qt4. Poiché queste due librerie sono diventate obsolete, FreeCAD è passato a Python 3 e Qt5. Nella maggior parte dei casi questa transizione è stata eseguita senza la necessità di interrompere la compatibilità con le versioni precedenti.

Normalmente, il modulo PySide fornisce il supporto per Qt4, mentre PySide2 fornisce il supporto per Qt5. Tuttavia, in FreeCAD non è necessario utilizzare PySide2 direttamente, poiché è incluso uno speciale modulo PySide per gestire Qt5.

Questo modulo PySide si trova nella directory Ext/ di un'installazione di FreeCAD compilata per Qt5.

/usr/share/freecad/Ext/PySide

Questo modulo importa solo le classi necessarie da PySide2 e le inserisce nel namespace PySide. Ciò significa che nella maggior parte dei casi lo stesso codice può essere utilizzato sia con Qt4 che con Qt5, purché utilizziamo il singolo modulo PySide.

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

L'unico aspetto insolito è che le classi PySide2.QtWidgets sono posizionate nel namespace PySide.QtGui.

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

Inizio

Esempi di utilizzo di PySide

Gli esempi di PySide sono divisi in 3 parti, differenziate per livello di esposizione a PySide, Python e alle parti incorporate in FreeCAD. La prima pagina contiene una panoramica e le basi della materia, fornisce una descrizione di PySide e di come è organizzato, mentre la seconda e la terza pagina contengono soprattutto degli esempi di codice di diversi livelli.

Si ritiene che questi esempi siano utili per iniziare, dopodiché l'utente potrà consultare altre risorse online o la documentazione ufficiale.

Inizio

Documentazione

Ci sono alcune differenze nella gestione dei widget in Qt4 (PySide) e Qt5 (PySide2). Il programmatore dovrebbe essere consapevole di queste incompatibilità e dovrebbe consultare la documentazione ufficiale se qualcosa non sembra funzionare come previsto su una data piattaforma. Tuttavia, Qt4 è considerato obsoleto, quindi la maggior parte dello sviluppo dovrebbe mirare a Qt5 e Python 3.

La documentazione di PySide fa riferimento alle classi in stile Python; tuttavia, poiché Qt è originariamente una libreria C++, le stesse informazioni dovrebbero essere disponibili nel riferimento C++ corrispondente.

Inizio