Interface creation/pl: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages/>
<languages/>


{{Docnav
{{Docnav/pl
|[[PySide|PySide]]
|[[PySide/pl|PySide]]
|[[Dialog_creation|Dialog creation]]
|[[Dialog_creation/pl|Tworzenie dialogu]]
}}
}}


{{TOCright}}
{{TOCright}}


== Introduction ==
<span id="Introduction"></span>
==Wprowadzenie==


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 [[Workbenches|workbenches]].
Zaawansowani użytkownicy mają możliwość [[Interface_creation/pl|tworzenia interfejsu]], aby pomóc wytwarzać złożone narzędzia dla ich niestandardowych [[Addon/pl|dodatków]], takie jak [[Macros/pl|makrodefinicje]] lub pełne [[Workbenches/pl|środowiska pracy]].


Interfaces are created using [[PySide|PySide]], which is a library for using Qt with [[Python|Python]].
Interfejs jest tworzony przy użyciu biblioteki [[PySide/pl|PySide]], która umożliwia korzystanie z Qt w środowisku [[Python/pl|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|Dwie ogólne metody tworzenia interfejsów, poprzez włączenie interfejsu do pliku Python lub poprzez użycie plików {{incode|.ui}}.}}


== Description ==
<span id="Description"></span>
==Opis==


Istnieją zazwyczaj dwa sposoby tworzenia interfejsu za pomocą PySide.
There are typically two ways of creating interfaces with PySide.


<span id="Interface_in_a_.ui_file"></span>
=== Interface in a .ui file ===
===Interfejs w pliku .ui===


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.
W tej metodzie interfejs jest zdefiniowany w pliku {{incode|.ui}} (dokument XML, który definiuje strukturę interfejsu), który jest następnie importowany do kodu [[Python/pl|Python]], który go używa. Jest to zalecane podejście.
* Pozwala programiście pracować z interfejsem graficznym oddzielnie od logiki, która będzie z niego korzystać.
* 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.
* Pozwala to każdemu spojrzeć na sam interfejs, czyli plik {{incode|.ui}}, bez konieczności uruchamiania kodu Python.
* The {{incode|.ui}} file may be designed by anybody without programming knowledge.
* Plik {{incode|.ui}} może być zaprojektowany przez każdego bez wiedzy programistycznej.
* 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]].
* Interfejs {{incode|.ui}} może być używany w samodzielnym oknie ''(modalnym)'' lub w oknie osadzonym ''(niemodalnym)'', dlatego ta metoda jest idealna do tworzenia niestandardowych [[Task_panel/pl|paneli zadań]].
* 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.
* Ponieważ plik {{incode|.ui}} opisuje tylko "wygląd" interfejsu, nie musi być powiązany z konkretnym językiem programowania; może być używany zarówno w [[Python/pl|Python]], jak i w kodzie C++.


<span id="Interface_completely_in_Python_code"></span>
=== Interface completely in Python code ===
===Interfejs w całości w kodzie Python===


W tej metodzie cały interfejs jest definiowany przez kilka wywołań środowiska Python.
In this method the entire interface is defined by several Python calls.
* Jest to starszy sposób pracy z interfejsem.
* This is an older way of working with interfaces.
* Metoda ta tworzy bardzo rozwlekły kod, ponieważ wiele szczegółów interfejsu musi zostać określonych ręcznie.
* This method produces very verbose code because many details of the interface need to be specified by hand.
* Nie jest łatwo oddzielić interfejs od logiki, która używa tego kodu, co oznacza, że użytkownik musiałby uruchomić plik [[Python/pl|Python]] w odpowiednim kontekście, aby zobaczyć, jak wyglądałby interfejs.
* 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.
* Ta metoda ma tę zaletę, że kilka interfejsów może być zawartych w jednym dokumencie, kosztem tego, że plik jest bardzo duży.
* This method has the advantage that several interfaces may be contained within a single document, at the expense of making the file very large.
* Ta metoda jest zalecana tylko dla małych interfejsów, które nie definiują więcej niż kilka widżetów, na przykład w [[Macros/pl|makrodefinicjach]].
* This method is recommended only for small interfaces that don't define more than a few widgets, for example in [[Macros|macros]].


Przykłady tej metody można znaleźć w [[Interface_creation/pl#Interface_completely_in_Python_code|Tworzenie interfejsu całkowicie w kodzie Python]].
For examples on this method see [[Dialog_creation|Interface creation completely in Python]].




{{Docnav
{{Docnav/pl
|[[PySide|PySide]]
|[[PySide/pl|PySide]]
|[[Dialog_creation|Dialog creation]]
|[[Dialog_creation/pl|Tworzenie dialogu]]
}}
}}



Latest revision as of 15:35, 30 October 2023

Wprowadzenie

Zaawansowani użytkownicy mają możliwość tworzenia interfejsu, aby pomóc wytwarzać złożone narzędzia dla ich niestandardowych dodatków, takie jak makrodefinicje lub pełne środowiska pracy.

Interfejs jest tworzony przy użyciu biblioteki PySide, która umożliwia korzystanie z Qt w środowisku Python.

Dwie ogólne metody tworzenia interfejsów, poprzez włączenie interfejsu do pliku Python lub poprzez użycie plików .ui.

Opis

Istnieją zazwyczaj dwa sposoby tworzenia interfejsu za pomocą PySide.

Interfejs w pliku .ui

W tej metodzie interfejs jest zdefiniowany w pliku .ui (dokument XML, który definiuje strukturę interfejsu), który jest następnie importowany do kodu Python, który go używa. Jest to zalecane podejście.

  • Pozwala programiście pracować z interfejsem graficznym oddzielnie od logiki, która będzie z niego korzystać.
  • Pozwala to każdemu spojrzeć na sam interfejs, czyli plik .ui, bez konieczności uruchamiania kodu Python.
  • Plik .ui może być zaprojektowany przez każdego bez wiedzy programistycznej.
  • Interfejs .ui może być używany w samodzielnym oknie (modalnym) lub w oknie osadzonym (niemodalnym), dlatego ta metoda jest idealna do tworzenia niestandardowych paneli zadań.
  • Ponieważ plik .ui opisuje tylko "wygląd" interfejsu, nie musi być powiązany z konkretnym językiem programowania; może być używany zarówno w Python, jak i w kodzie C++.

Interfejs w całości w kodzie Python

W tej metodzie cały interfejs jest definiowany przez kilka wywołań środowiska Python.

  • Jest to starszy sposób pracy z interfejsem.
  • Metoda ta tworzy bardzo rozwlekły kod, ponieważ wiele szczegółów interfejsu musi zostać określonych ręcznie.
  • Nie jest łatwo oddzielić interfejs od logiki, która używa tego kodu, co oznacza, że użytkownik musiałby uruchomić plik Python w odpowiednim kontekście, aby zobaczyć, jak wyglądałby interfejs.
  • Ta metoda ma tę zaletę, że kilka interfejsów może być zawartych w jednym dokumencie, kosztem tego, że plik jest bardzo duży.
  • Ta metoda jest zalecana tylko dla małych interfejsów, które nie definiują więcej niż kilka widżetów, na przykład w makrodefinicjach.

Przykłady tej metody można znaleźć w Tworzenie interfejsu całkowicie w kodzie Python.