PySide/it: Difference between revisions

From FreeCAD Documentation
No edit summary
(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...")
 
(58 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<H2>PySide</H2>


{{docnav/it
[http://en.wikipedia.org/wiki/PySide PySide] è il legame Python alla multipiattaforma GUI degli strumenti di Qt. FreeCAD usa PySide per tutti gli effetti GUI (Interfaccia grafica per l'utente). PySide è l'evoluzione del pacchetto PyQt che è stato utilizzato in precedenza da FreeCAD per la sua GUI. Per maggiori informazioni sulla differenza vedere [http://qt-project.org/wiki/Differences_Between_PySide_and_PyQt Differences Between PySide and PyQt].
|[[Pivy/it|Pivy]]
|[[Interface_creation/it|Creare l'interfaccia]]
}}


{{TOCright}}
Spesso gli utenti di FreeCAD accedono a tutto tramite l'interfaccia integrata. Per gli utenti che desiderano personalizzare le loro operazioni esiste l'interfaccia Python, che è documentata nel [[Python_scripting_tutorial/it|Tutorial degli script Python]]. L'interfaccia Python di FreeCAD è molto flessibile e potente. Questa pagina documenta l'interazione di Python con FreeCAD tramite PySide.


==Introduzione==
Python offre la dichiarazione 'print', data dal codice:

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'
}}
}}
Con l'istruzione print di Python si ha solo un limitato controllo dell'aspetto e del comportamento. PySide fornisce il controllo mancante e gestisce anche gli ambienti dove le funzionalità incorporate in Python non sono sufficienti, come ad esempio i file dell'ambiente macro di FreeCAD.


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}}.
Le funzionalità di PySide vanno da:
{{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.
a:
* [[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 è descritto nelle seguenti 3 pagine che dovrebbero essere lette una dopo l'altra:
{{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/it|Esempi di base di PySide]] (Hello World, avisi, inserire un testo, inserire un numero)
* [[PySide_Medium_Examples/it|Esempi di livello medio di PySide]] (dimensionare le finestre, nascondere widget, i menu popup, la posizione del mouse, gli eventi del mouse)
* [[PySide_Advanced_Examples/it|Esempi di livello avanzato di PySide]] (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.
Esse suddividono l'argomento in 3 parti, differenziate per livello di esposizione per PySide, Python e le parti contenute in FreeCAD. La prima pagina contiene una panoramica e le basi della materia e 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.
* [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
Con le pagine allegate si intende fornire del semplice codice Python per eseguire PySide, in modo che l'utente possa facilmente copiarlo, incollarlo nel proprio lavoro, adattarlo se necessario, e risolvere i suoi problemi con FreeCAD. Sperando che non abbia bisogno di andare alla ricerca di risposte alle domande su PySide attraverso internet. Allo stesso tempo, queste pagine non vogliono sostituirsi ai vari tutorial completi e ai siti di riferimento a PySide presenti nel web.
|[[Pivy/it|Pivy]]
|[[Interface_creation/it|Creare l'interfaccia]]
}}


{{Powerdocnavi{{#translation:}}}}
{{docnav/it|[[Pivy/it|Pivy]]|[[Scripted objects/it|Script per oggetti]]}}
[[Category:Developer Documentation{{#translation:}}]]

[[Category:Poweruser Documentation/it]]
[[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