Interface creation/it: Difference between revisions
Renatorivo (talk | contribs) (Created page with "== Introduzione ==") |
No edit summary |
||
(21 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
<languages/> |
||
{{Docnav/it |
|||
|[[PySide/it|PySide]] |
|||
|[[Dialog_creation/it|Creare delle finestre di dialogo]] |
|||
}} |
|||
{{TOCright}} |
|||
== Introduzione == |
== Introduzione == |
||
Gli utenti esperti hanno la possibilità di [[Interface_creation|creare delle interfacce]] che li aiutino a produrre strumenti complessi per i loro [[Addon/it|addon]] personalizzati, come le [[Macros/it|macro]] o interi [[Workbenches/it|ambienti]]. |
|||
Power users have the possibility of [[Interface creation|creating interfaces]] to help them produce complex tools for their custom [[Addon|addons]], such as [[macros|macros]] or full [[workbench|workbenches]]. |
|||
Le interfacce vengono create usando [[PySide/it|PySide]], che è una libreria per l'utilizzo di Qt con [[Python/it|Python]]. |
|||
[[File:FreeCAD_creating_interfaces.svg|600px]] |
[[File:FreeCAD_creating_interfaces.svg|600px]] |
||
{{Caption| |
{{Caption|Due metodi generali per creare delle interfacce, includendo l'interfaccia nel file Python o usando i file {{incode|.ui}}.}} |
||
==Descrizione== |
|||
Esistono in genere due modi per creare delle interfacce con PySide. |
|||
== Description == |
|||
⚫ | |||
There are typically two ways of creating interfaces with PySide. |
|||
Con questo metodo l'interfaccia è definita in un file {{incode|.ui}} (un documento XML che definisce la struttura dell'interfaccia), che viene poi importato nel codice [[Python/it|Python]] che lo utilizza. Questo è l'approccio consigliato. |
|||
⚫ | |||
* Consente al programmatore di lavorare con l'interfaccia grafica separatamente dalla logica che la utilizzerà. |
|||
* Permette a chiunque di guardare solo l'interfaccia, cioè il file {{incode|.ui}}, senza dover eseguire codice Python. |
|||
* Il file {{incode|.ui}} può essere progettato da chiunque non abbia conoscenze di programmazione. |
|||
* L'interfaccia {{incode|.ui}} può essere utilizzata in una finestra autonoma (modale) o in una finestra incorporata (non modale); pertanto, questo metodo è ideale per creare una [[Task_panel/it|Scheda Azioni]]. |
|||
* Dato che il file {{incode|.ui}} descrive solo "l'aspetto" dell'interfaccia, non ha bisogno di essere legato a un particolare linguaggio di programmazione; può essere utilizzato sia nel codice [[Python/it|Python]] che in quello C++. |
|||
=== Interfaccia completamente in codice Python === |
|||
In this method the interface is defined in a {{incode|.ui}} file (an XML document that defines the structure of the interface), which is then imported into [[Python|Python]] code that uses it. This is the recommended approach. |
|||
* It allows the programmer to work with the graphical interface separately from the logic that will use it. |
|||
* It allows anybody to look at the interface alone, that is, the {{incode|.ui}} file, without having to run Python code. |
|||
* The {{incode|.ui}} file may be designed by anybody without programming knowledge. |
|||
* The {{incode|.ui}} interface can be used in a standalone window (modal), or in an embedded window (non-modal); therefore, this method is ideal to create custom [[task_panel|task panels]]. |
|||
* Since the {{incode|.ui}} file just describes the "appearance" of the interface, it does not need to be tied to a particular programming language; it may be used both in [[Python|Python]] and C++ code. |
|||
In questo metodo l'intera interfaccia è definita da diverse chiamate Python. |
|||
For examples on this method see [[Interface_creation_with_UI_files|Interface creation with UI files]]. |
|||
* Questo è un vecchio modo di lavorare con le interfacce. |
|||
* Questo metodo produce un codice molto prolisso perché molti dettagli dell'interfaccia devono essere specificati manualmente. |
|||
* Non è semplice separare l'interfaccia dalla logica che utilizza quel codice, il che significa che un utente dovrebbe eseguire il file [[Python/it|Python]] nel contesto corretto per vedere come dovrebbe apparire l'interfaccia. |
|||
* Questo metodo ha il vantaggio che diverse interfacce possono essere contenute all'interno di un singolo documento, a costo di rendere il file molto grande. |
|||
* Questo metodo è consigliato solo per piccole interfacce che non definiscono più di alcuni widget, ad esempio in [[Macro/it|macro]]. |
|||
Per esempi su questo metodo vedi [[Dialog_creation/it|Creare delle finestre di dialogo]]. |
|||
=== Interface completely in Python code === |
|||
In this method the entire interface is defined by several Python calls. |
|||
* This is an older way of working with interfaces. |
|||
* This method produces very verbose code because many details of the interface need to be specified by hand. |
|||
* It is not simple to separate the interface from the logic that uses that code, meaning that a user would need to run the [[Python|Python]] file in the correct context in order to see how the interface would look. |
|||
* This method has the advantage that several interfaces may be contained within a single document, at the expense of making the file very large. |
|||
* This method is recommended only for small interfaces that don't define more than a few widgets, for example in [[macros|macros]]. |
|||
{{Docnav/it |
|||
For examples on this method see [[Dialog_creation|Interface creation completely in Python]]. |
|||
|[[PySide/it|PySide]] |
|||
|[[Dialog_creation/it|Creare delle finestre di dialogo]] |
|||
}} |
|||
{{Powerdocnavi{{#translation:}}}} |
{{Powerdocnavi{{#translation:}}}} |
||
[[Category:Developer Documentation{{#translation:}}]] |
|||
{{clear}} |
|||
[[Category:Python Code{{#translation:}}]] |
Latest revision as of 14:28, 23 December 2022
Introduzione
Gli utenti esperti hanno la possibilità di creare delle interfacce che li aiutino a produrre strumenti complessi per i loro addon personalizzati, come le macro o interi ambienti.
Le interfacce vengono create usando PySide, che è una libreria per l'utilizzo di Qt con Python.
Due metodi generali per creare delle interfacce, includendo l'interfaccia nel file Python o usando i file .ui
.
Descrizione
Esistono in genere due modi per creare delle interfacce con PySide.
Interfaccia in un file .ui
Con questo metodo l'interfaccia è definita in un file .ui
(un documento XML che definisce la struttura dell'interfaccia), che viene poi importato nel codice Python che lo utilizza. Questo è l'approccio consigliato.
- Consente al programmatore di lavorare con l'interfaccia grafica separatamente dalla logica che la utilizzerà.
- Permette a chiunque di guardare solo l'interfaccia, cioè il file
.ui
, senza dover eseguire codice Python. - Il file
.ui
può essere progettato da chiunque non abbia conoscenze di programmazione. - L'interfaccia
.ui
può essere utilizzata in una finestra autonoma (modale) o in una finestra incorporata (non modale); pertanto, questo metodo è ideale per creare una Scheda Azioni. - Dato che il file
.ui
descrive solo "l'aspetto" dell'interfaccia, non ha bisogno di essere legato a un particolare linguaggio di programmazione; può essere utilizzato sia nel codice Python che in quello C++.
Interfaccia completamente in codice Python
In questo metodo l'intera interfaccia è definita da diverse chiamate Python.
- Questo è un vecchio modo di lavorare con le interfacce.
- Questo metodo produce un codice molto prolisso perché molti dettagli dell'interfaccia devono essere specificati manualmente.
- Non è semplice separare l'interfaccia dalla logica che utilizza quel codice, il che significa che un utente dovrebbe eseguire il file Python nel contesto corretto per vedere come dovrebbe apparire l'interfaccia.
- Questo metodo ha il vantaggio che diverse interfacce possono essere contenute all'interno di un singolo documento, a costo di rendere il file molto grande.
- Questo metodo è consigliato solo per piccole interfacce che non definiscono più di alcuni widget, ad esempio in macro.
Per esempi su questo metodo vedi Creare delle finestre di dialogo.
- FreeCAD scripting: Python, Introduction to Python, Python scripting tutorial, FreeCAD Scripting Basics
- Modules: Builtin modules, Units, Quantity
- Workbenches: Workbench creation, Gui Commands, Commands, Installing more workbenches
- Meshes and Parts: Mesh Scripting, Topological data scripting, Mesh to Part, PythonOCC
- Parametric objects: Scripted objects, Viewproviders (Custom icon in tree view)
- Scenegraph: Coin (Inventor) scenegraph, Pivy
- Graphical interface: Interface creation, Interface creation completely in Python (1, 2, 3, 4, 5), PySide, PySide examples beginner, intermediate, advanced
- Macros: Macros, How to install macros
- Embedding: Embedding FreeCAD, Embedding FreeCADGui
- Other: Expressions, Code snippets, Line drawing function, FreeCAD vector math library (deprecated)
- Hubs: User hub, Power users hub, Developer hub