Difference between revisions of "Interface creation/it"

From FreeCAD Documentation
Jump to navigation Jump to search
(Created page with "Creare l'interfaccia")
 
(Updating to match new version of source page)
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
<languages/>
 
<languages/>
  
== Introduction ==
+
{{Docnav
 +
|[[PySide|PySide]]
 +
|[[Dialog_creation|Dialog creation]]
 +
}}
  
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]].
+
{{TOCright}}
  
Interfaces are created using [[PySide|PySide]], which is a library for using Qt with [[Python|Python]].
+
== 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 [[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|Two general methods to create interfaces, by including the interface in the Python file, or by using {{incode|.ui}} files.}}
+
{{Caption|Due metodi generali per creare delle interfacce, includendo l'interfaccia nel file Python o usando i file {{incode|.ui}}.}}
  
== Description ==
+
==Descrizione==
  
There are typically two ways of creating interfaces with PySide.
+
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 [[task_panel|task panels]].
+
* 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 [[macros|macros]].
+
* 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:}}}}
{{clear}}
+
[[Category:Developer Documentation{{#translation:}}]]
 +
[[Category:Python Code{{#translation:}}]]

Latest revision as of 15:45, 6 November 2021

Other languages:
Deutsch • ‎English • ‎français • ‎italiano • ‎polski • ‎русский
Arrow-left.svg Previous: PySide

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.

FreeCAD creating interfaces.svg

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.


Arrow-left.svg Previous: PySide