Interface creation/it: Difference between revisions
Renatorivo (talk | contribs) (Created page with "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...") |
(Updating to match new version of source page) |
||
(8 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
<languages/> |
||
{{Docnav |
|||
|[[PySide|PySide]] |
|||
|[[Dialog_creation|Dialog creation]] |
|||
}} |
|||
{{TOCright}} |
|||
== Introduzione == |
== Introduzione == |
||
<div class="mw-translate-fuzzy"> |
|||
Gli utenti esperti hanno la possibilità di creare delle interfacce che li aiutino a produrre strumenti complessi per i loro [[Addon/it|addon]] personalizzati, come le [[macros/it|macro]] o interi [[ |
Gli utenti esperti hanno la possibilità di 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]] . |
||
</div> |
|||
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. |
|||
=== Interface in a .ui file === |
=== Interface in a .ui file === |
||
Line 20: | Line 29: | ||
* It allows anybody to look at the interface alone, that is, the {{incode|.ui}} file, without having to run Python code. |
* 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}} 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 [[ |
* 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. |
* 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. |
||
For examples on this method see [[Interface_creation_with_UI_files|Interface creation with UI files]]. |
|||
=== Interface completely in Python code === |
=== Interface completely in Python code === |
||
Line 32: | Line 39: | ||
* 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. |
* 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 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 [[ |
* This method is recommended only for small interfaces that don't define more than a few widgets, for example in [[Macros|macros]]. |
||
For examples on this method see [[Dialog_creation|Interface creation completely in Python]]. |
For examples on this method see [[Dialog_creation|Interface creation completely in Python]]. |
||
{{Docnav |
|||
|[[PySide|PySide]] |
|||
|[[Dialog_creation|Dialog creation]] |
|||
}} |
|||
{{Powerdocnavi{{#translation:}}}} |
{{Powerdocnavi{{#translation:}}}} |
||
[[Category:Developer Documentation{{#translation:}}]] |
|||
{{clear}} |
|||
[[Category:Python Code{{#translation:}}]] |
Revision as of 15:45, 6 November 2021
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.
Interface in a .ui file
In this method the interface is defined in a .ui
file (an XML document that defines the structure of the interface), which is then imported into 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
.ui
file, without having to run Python code. - The
.ui
file may be designed by anybody without programming knowledge. - The
.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 panels. - Since the
.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 and C++ code.
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 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.
For examples on this method see Interface creation completely in Python.
- 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