Vytvořte si své první GUI v Pythonu s Glade a GTK+

Photo of author

By etechblogcz

Základní aspekty

  • Vývojáři, kteří pracují s Pythonem, mohou využít GTK+ a Glade pro vytváření intuitivních grafických uživatelských rozhraní (GUI) pomocí vizuálního nástroje.
  • Pro přípravu vývojového prostředí je nutné nainstalovat Python, GTK+, Glade a PyGObject.
  • Vývoj GUI pro Python pomocí GTK+ a Glade zrychluje celý proces a odděluje návrh rozhraní od samotného programového kódu.

Python je populární programovací jazyk, který je velmi vhodný pro analýzu dat a tvorbu webových aplikací. Stejně dobře se ale hodí i pro vytváření desktopových aplikací s grafickým rozhraním. GTK+ a Glade usnadňují tvorbu multiplatformních aplikací.

GTK+ a Glade – návrhář rozhraní pro Pythonisty

GTK+ (GIMP Toolkit) a Glade Interface Designer představují skvělou kombinaci pro ty vývojáře, kteří chtějí vytvářet uživatelsky přívětivá grafická rozhraní.

GTK+ je multiplatformní sada nástrojů, která umožňuje vývoj GUI na různých operačních systémech, včetně Linuxu, Windows a macOS.

Glade Interface Designer, který je doplňkovým nástrojem pro GTK+, umožňuje vizuálně navrhovat GUI, aniž byste museli psát kód pro rozložení. Pomocí funkce drag-and-drop a několika kliknutí si můžete vytvořit grafické rozhraní v prostředí WYSIWYG.

Konfigurace prostředí Python pro vývoj s GTK+ a Glade

Správné nastavení prostředí je klíčové pro efektivní a bezproblémový vývojový proces.

1. Instalace Pythonu

Nejprve zkontrolujte, zda máte v systému nainstalován Python. V příkladech bude použit kód Pythonu 3, který poskytuje lepší podporu a integraci pro GTK+ a Glade. Na systémech Linux a macOS je Python obvykle již nainstalovaný.

Uživatelé Windows si mohou stáhnout Python z oficiálních stránek Pythonu.

2. Instalace GTK+

GTK+ můžete nainstalovat pomocí správce balíčků vašeho systému.

Pro Ubuntu a další distribuce Linuxu založené na Debianu použijte:

sudo apt-get install libgtk-3-dev

Pro Fedoru a podobné systémy:

sudo dnf install gtk3-devel

Pro macOS pomocí Homebrew:

brew install gtk+3

Uživatelé Windows si mohou stáhnout GTK+ z oficiální stránky pro stahování GTK. Pokud však máte nainstalovaný MSYS2, otevřete příkazový řádek MSYS2 a použijte tento příkaz:

pacman -S mingw-w64-x86_64-python-gobject

3. Instalace Glade

Glade můžete nainstalovat pomocí příkazového řádku.

Pro Ubuntu a distribuce Linuxu založené na Debianu:

sudo apt-get install glade

Pro Fedoru:

sudo dnf install glade

Uživatelé macOS mohou použít Homebrew:

brew install glade

Uživatelé Windows mohou s MSYS2 použít následující příkaz:

pacman -S mingw-w64-x86_64-glade

4. Python vazby pro GTK+

Pro integraci GTK+ s Pythonem nainstalujte PyGObject. Použijte příkaz:

pip install PyGObject

Pokud se během instalace PyGObject objeví chyba, například „Building wheel for pycairo (pyproject.toml) se nespustilo“, musíte nainstalovat balíček cairo.

Pro Ubuntu a distribuce Linuxu založené na Debianu:

sudo apt-get install libcairo2-dev

Pro Fedoru:

sudo yum install cairo-devel

Pro macOS:

brew install pygobject3

5. Nastavení virtuálního prostředí (volitelné)

Doporučuje se používat pro vaše projekty Python virtuální prostředí. To vám pomůže izolovat závislosti jednotlivých projektů. Vytvořte a aktivujte virtuální prostředí v Linuxu pomocí těchto příkazů v terminálu:

python -m venv myenv
source myenv/bin/activate

Pro Windows:

python -m venv myenv
myenv\Scripts\activate

Pro macOS, abyste zajistili, že virtuální prostředí bude mít přístup k balíčkům, které jsou instalované, použijte:

python -m venv --system-site-packages myenv
source myenv/bin/activate

6. Ověření instalace

Pro ověření, že jsou GTK+ a Glade nainstalovány správně, vytvořte jednoduchý Python skript, který importuje GTK:

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
print("GTK+ version:", Gtk.get_major_version(), Gtk.get_minor_version())

Při spuštění tohoto skriptu se vypíše verze nainstalované knihovny GTK+. Pokud vše proběhne bez problémů, vaše vývojové prostředí je nastaveno správně.

Vytvoření jednoduché aplikace GUI s Glade Interface Designer a Pythonem

Aplikaci s grafickým rozhraním můžete navrhnout v Glade Interface Designer a vyexportovat rozložení jako soubor projektu. Poté můžete k tomuto souboru projektu přistupovat z Python kódu.

Návrh GUI pomocí Glade

Rozhraní Glade založené na přetahování usnadňuje soustředit se na design bez toho, abyste se zabývali podrobným kódem. Spusťte Glade z nabídky aplikací nebo z příkazového řádku vašeho systému příkazem:

glade

Měli byste vidět rozhraní Glade, ve kterém můžete začít s návrhem GUI.

Tlačítko „Vytvořit nový projekt“ v levém horním rohu poskytne prázdnou plochu pro návrh GUI. Glade nabízí širokou škálu widgetů ve své horní liště, včetně tlačítek, textových polí a štítků. Přetáhněte tyto widgety na plátno a začněte upravovat svoje GUI. Můžete měnit velikost a umístění widgetů podle potřeb.

Nejprve vyberte widget GtkWindow z nabídky „Nejvyšší úroveň“:

Na stránce „Obecné“ na pravé liště Glade uvidíte možnost „ID“. Toto ID je jedinečný název widgetu, který jste přidali. V tomto příkladu přiřaďte ID „myMainWindow“ k widgetu GtkWindow, který jste přidali.

Nyní můžete přidat widgety do hlavního okna, které jste vytvořili. Přejděte na „Kontejnery“ v horní liště, vyberte widget „GtkBox“ a přetáhněte jej do pracovního prostoru. Poté mu dejte ID „myMainBox“.

Po přidání widgetu GtkBox uvidíte napravo od pracovního prostoru různé možnosti, které jsou specifické pro daný widget. Zde můžete upravovat celý design bez psaní kódu.

Dále přidejte ovládací prvek do svého návrhu. Pro tento účel přejděte na „Ovládací prvky“ v horní liště, vyberte jako příklad GtkButton a přetáhněte jej kamkoli do GtkBox. Dejte mu ID „myButton“. Pokud chcete, můžete také změnit text tlačítka na kartě „Obecné“ v pravém panelu.

GtkButton je widget, na který se dá kliknout, takže pro něj můžete definovat obslužný program v Pythonu a později napsat příslušný kód. Přejděte na záložku „Signály“ v pravém menu a zadejte obslužný program pro signál „kliknuto“. V tomto příkladu ho nazvěte „on_button_clicked“.

Nyní můžete uložit svůj návrh GUI jako soubor projektu. Uložte soubor jako „myDesign.glade“.

Použití souboru návrhu Glade v Python kódu

Vytvořte soubor „app.py“ ve stejném adresáři jako soubor „myDesign.glade“. Vložte do tohoto souboru následující kód:

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
from gi.repository import Gdk
class MyApp:
def __init__(self):

self.builder = Gtk.Builder()
self.builder.add_from_file("myDesign.glade")

self.window = self.builder.get_object("myMainWindow")
self.window.connect("destroy", Gtk.main_quit)

self.button = self.builder.get_object("myButton")
self.button.connect("clicked", self.on_button_clicked)

self.color_toggle = False
def on_button_clicked(self, widget):

color = "#FF0000" if self.color_toggle else "#00FF00"
self.window.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse(color))
self.color_toggle = not self.color_toggle
def run(self):
self.window.show_all()
Gtk.main()
if __name__ == "__main__":
app = MyApp()
app.run()

Tento kód změní barvu pozadí okna při každém kliknutí na tlačítko. Všimněte si volání „self.builder.get_object()“, která předávají ID widgetů, které jste definovali v Glade.

Spusťte svůj skript Python pomocí tohoto příkazu, abyste viděli výsledek:

python3 app.py

Výhody použití GTK+ a Glade pro vývoj GUI v Pythonu

Použití GTK+ a Glade pro vývoj GUI v Pythonu má mnoho výhod. Vytvoření grafického rozhraní obvykle vyžaduje velké množství času a úsilí. Díky Glade Interface Designer můžete tento proces výrazně urychlit. Glade navíc nabízí širokou škálu widgetů, z nichž každý je stejně snadno použitelný jako tlačítko v příkladu.

Klíčovou výhodou Glade je jeho schopnost udržet design GUI oddělený od kódu. Tím je údržba a aktualizace GUI mnohem jednodušší. Tento přístup vede k čistšímu a lépe organizovanému kódu, který je v souladu s moderními programovacími postupy.