Stwórz swój pierwszy GUI w Pythonie za pomocą Glade i GTK+

Istotne informacje na temat tworzenia interfejsów graficznych

  • Twórcy oprogramowania w języku Python mogą wykorzystać bibliotekę GTK+ oraz narzędzie Glade, aby za pomocą interfejsu wizualnego tworzyć intuicyjne interfejsy użytkownika.
  • Proces konfiguracji środowiska dla tego celu wymaga zainstalowania Pythona, biblioteki GTK+, aplikacji Glade i pakietu PyGObject.
  • Wykorzystanie GTK+ i Glade do projektowania GUI w Pythonie znacząco przyspiesza proces oraz umożliwia separację projektowania interfejsu od właściwego kodu aplikacji.

Python, dzięki swojej prostocie, jest doskonałym wyborem do analizy danych i tworzenia stron internetowych. Niemniej jednak, sprawdza się również w tworzeniu aplikacji z graficznym interfejsem użytkownika. GTK+ i Glade to narzędzia, które ułatwiają proces tworzenia prostych, wieloplatformowych aplikacji.

Projektowanie interfejsów użytkownika za pomocą GTK+ i Glade dla programistów Pythona

GTK+ (GIMP Toolkit) w połączeniu z Glade Interface Designer stanowi potężne narzędzie dla programistów Pythona, którzy pragną tworzyć intuicyjne i estetyczne graficzne interfejsy użytkownika.

GTK+ jest wszechstronną biblioteką narzędzi, którą można stosować do tworzenia GUI. Jest ona kompatybilna z różnymi systemami operacyjnymi, w tym Linux, Windows i macOS.

Glade Interface Designer, narzędzie współpracujące z GTK+, umożliwia projektowanie GUI bez konieczności pisania kodu odpowiedzialnego za układ. Dzięki niemu można tworzyć GUI w środowisku WYSIWYG, korzystając z prostych funkcji przeciągania i upuszczania.

Przygotowanie środowiska Pythona do programowania z wykorzystaniem GTK+ i Glade

Konfiguracja środowiska jest kluczowym etapem, który zapewnia sprawną i efektywną pracę.

1. Instalacja Pythona

Na początku upewnij się, że Python jest zainstalowany w Twoim systemie. W prezentowanych przykładach wykorzystywany jest kod Pythona 3, ponieważ oferuje on lepsze wsparcie i integrację z GTK+ i Glade. W systemach Linux i macOS Python jest zazwyczaj preinstalowany.

Użytkownicy systemu Windows mogą pobrać Pythona z oficjalnej witryny Pythona.

2. Instalacja GTK+

GTK+ można zainstalować za pomocą menedżera pakietów.

W systemach Linux opartych na Ubuntu i Debianie należy użyć następującej komendy:

 sudo apt-get install libgtk-3-dev 

Dla systemów Fedora i podobnych:

 sudo dnf install gtk3-devel 

W systemie macOS, korzystając z Homebrew:

 brew install gtk+3 

Użytkownicy systemu Windows mogą pobrać GTK+ z oficjalnej strony pobierania GTK. Alternatywnie, jeśli masz zainstalowany MSYS2, możesz użyć tego polecenia w wierszu poleceń MSYS2:

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

3. Instalacja Glade

Do zainstalowania Glade można użyć wiersza poleceń.

W dystrybucjach Linuksa bazujących na Ubuntu i Debianie:

 sudo apt-get install glade 

W systemie Fedora:

 sudo dnf install glade 

Użytkownicy macOS mogą korzystać z Homebrew:

 brew install glade 

W systemie Windows można użyć następującej komendy w MSYS2:

 pacman -S mingw-w64-x86_64-glade 

4. Powiązania Pythona dla GTK+

Aby zintegrować GTK+ z Pythonem, należy zainstalować PyGObject. Służy do tego następujące polecenie:

 pip install PyGObject 

W przypadku wystąpienia błędu typu „Koło budowania dla pycairo (pyproject.toml) nie zostało uruchomione” podczas instalacji PyGObject, konieczne będzie zainstalowanie pakietu cairo.

W dystrybucjach Linuksa opartych na Ubuntu i Debianie:

 sudo apt-get install libcairo2-dev 

W systemie Fedora:

 sudo yum install cairo-devel 

W systemie macOS:

 brew install pygobject3 

5. Konfiguracja środowiska wirtualnego (opcjonalnie)

Dobrym zwyczajem w projektach Pythona jest stosowanie środowiska wirtualnego. Pozwala to na izolację zależności projektu. Aby utworzyć i aktywować środowisko wirtualne w systemie Linux, użyj następujących komend w terminalu:

 python -m venv myenv
source myenv/bin/activate

W systemie Windows użyj:

 python -m venv myenv
myenv\Scripts\activate

W systemie macOS, aby mieć pewność, że środowisko wirtualne ma dostęp do pakietów instalacyjnych, użyj:

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

6. Weryfikacja instalacji

Aby sprawdzić, czy GTK+ i Glade zostały poprawnie zainstalowane, utwórz prosty skrypt w języku Python, który importuje bibliotekę GTK:

 import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk

print("Wersja GTK+:", Gtk.get_major_version(), Gtk.get_minor_version())

Po uruchomieniu tego skryptu zostanie wyświetlona zainstalowana wersja GTK+. Jeśli wszystko przebiegło pomyślnie, środowisko programistyczne jest skonfigurowane.

Tworzenie prostej aplikacji GUI przy użyciu Glade Interface Designer i Pythona

Możesz zaprojektować interfejs swojej aplikacji GUI w Glade Interface Designer i wyeksportować układ jako plik projektu. Następnie możesz odwołać się do tego pliku z poziomu kodu Pythona.

Projektowanie GUI w Glade

Intuicyjny interfejs Glade, oparty na zasadzie „przeciągnij i upuść”, pozwala skupić się na projekcie bez angażowania się w kod źródłowy. Uruchom Glade z menu aplikacji w systemie lub z wiersza poleceń, wpisując:

 glade

Powinieneś zobaczyć okno Glade, w którym możesz rozpocząć projektowanie układu GUI.

Przycisk „Utwórz nowy projekt” w lewym górnym rogu daje dostęp do pustego obszaru roboczego. Glade udostępnia na górnym pasku różne widżety, w tym przyciski, pola tekstowe i etykiety. Przeciągnij te widżety na obszar roboczy, aby zacząć komponować swój GUI. Możesz zmieniać ich rozmiar i położenie, dostosowując je do potrzeb swojego projektu.

Na początek wybierz widżet GtkWindow z menu „Toplevels”:

W panelu „Ogólne”, który znajduje się po prawej stronie okna Glade, zobaczysz opcję „ID”. Ten identyfikator to unikalna nazwa dodanego widżetu. W tym przykładzie przypisz identyfikator „myMainWindow” do dodanego widżetu GtkWindow.

Teraz możesz dodawać kolejne widżety do swojego okna głównego. Przejdź do sekcji „Kontenery” na górnym pasku, wybierz widżet GtkBox i przeciągnij go do obszaru roboczego. Następnie nadaj mu identyfikator „myMainBox”.

Po dodaniu widżetu GtkBox, po prawej stronie obszaru roboczego pojawią się różne opcje specyficzne dla tego widżetu. W tym miejscu możesz edytować cały projekt bez pisania kodu.

Następnie dodaj widżet „Control” do swojego projektu. Przejdź do sekcji „Control” na górnym pasku, wybierz na przykład GtkButton i przeciągnij go w dowolne miejsce w obrębie GtkBox. Nadaj mu identyfikator „myButton”. Jeśli chcesz, możesz również zmienić tekst przycisku, korzystając z zakładki „Ogólne” w panelu po prawej stronie.

GtkButton to klikalny widget, więc możesz zdefiniować dla niego obsługę zdarzenia w Pythonie, a później napisać odpowiedni kod. Przejdź do zakładki „Sygnały” w prawym panelu i określ funkcję obsługi sygnału kliknięcia. W tym przykładzie nazwijmy ją „on_button_clicked”.

Teraz możesz zapisać swój projekt GUI jako plik projektu. Zapisz plik pod nazwą „myDesign.glade”.

Wykorzystanie pliku projektu Glade w kodzie Pythona

Utwórz plik „app.py” w tym samym katalogu, w którym znajduje się plik „myDesign.glade”. Wklej do niego następujący kod:

 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()

Ten kod zmieni kolor tła okna za każdym razem, gdy klikniesz przycisk. Zwróć uwagę na wywołania funkcji „self.builder.get_object()”, które pobierają obiekty widżetów zdefiniowane w pliku Glade.

Uruchom skrypt Pythona, używając polecenia:

 python3 app.py 

Korzyści wynikające z użycia GTK+ i Glade w procesie tworzenia GUI w Pythonie

Wykorzystanie GTK+ i Glade do projektowania interfejsów graficznych w Pythonie przynosi szereg korzyści. Tworzenie GUI zazwyczaj jest zadaniem wymagającym czasu i wysiłku, jednak dzięki Glade Interface Designer można znacząco przyspieszyć ten proces. Glade oferuje także szeroki wachlarz widżetów, których użycie jest tak proste jak w przypadku przycisku przedstawionego w przykładzie.

Kluczową zaletą Glade jest możliwość oddzielenia projektu GUI od kodu aplikacji. To znacznie ułatwia konserwację i aktualizację interfejsu. Takie podejście prowadzi do uzyskania przejrzystszego i lepiej zorganizowanego kodu, co jest zgodne z nowoczesnymi praktykami programistycznymi.