Pyton

Jak stworzyć prostą aplikację w Pythonie i GTK3

Jak stworzyć prostą aplikację w Pythonie i GTK3
W tym artykule wyjaśnimy, jak stworzyć graficzną aplikację „Hello World” w systemie Linux przy użyciu języka programowania Python 3 i frameworka GTK3 GUI. Wszystkie próbki kodu w samouczku są testowane w Pythonie 3.8.6 i GTK 3.24.23 na Ubuntu 20.10.

Zainstaluj niezbędne pakiety

Aby stworzyć aplikację przy użyciu Pythona 3 i GTK3, musisz zainstalować powiązania Pythona dla bibliotek GObject. Można to zrobić, instalując pakiet PyGObject zawarty w repozytoriach prawie wszystkich głównych dystrybucji Linuksa. Aby zainstalować te zależności w Ubuntu, możesz użyć poniższego polecenia:

$ sudo apt zainstaluj python3 python3-gi

Możesz także skompilować PyGObject z kodu źródłowego dostępnego tutaj.

Pełny kod aplikacji Hello World

Pełną próbkę kodu aplikacji Hello World napisanej w Pythonie 3 i GTK3 można znaleźć poniżej. Ta aplikacja wysyła komunikat „Hello World !!”powiadomienie na pulpicie po kliknięciu przycisku.

importuj prezent
żołnierz amerykański.require_version("Gtk", "3.0")
żołnierz amerykański.require_version('Powiadom', '0.7')
z gi.import repozytorium Gtk
z gi.import repozytorium Powiadom
class MyWindow(Gtk.Okno):
def __init__(self):
Gtk.Okno.__init__(self, title="Witaj świecie")
Gtk.Okno.set_default_size(self, 640, 480)
Notyfikować.init("Prosta aplikacja GTK3")
samego siebie.pudełko = Gtk.Pudełko (rozstaw=6)
samego siebie.dodaj (siebie.pudełko)
samego siebie.przycisk = Gtk.Przycisk(label="Kliknij tutaj")
samego siebie.przycisk.set_halign(Gtk.Wyrównać.ŚRODEK)
samego siebie.przycisk.set_valign(Gtk.Wyrównać.ŚRODEK)
samego siebie.przycisk.connect("kliknięty", self.on_button_clicked)
samego siebie.pudełko.pack_start(self.przycisk, Prawda, Prawda, 0)
def on_button_clicked(self, widget):
n = Powiadom.Powiadomienie.new("Prosta aplikacja GTK3", "Witaj świecie !!")
nie.pokazać()
wygrana = Moje Okno()
zdobyć.connect("zniszcz", Gtk.main_quit)
zdobyć.Pokaż wszystko()
Gtk.Główny()

Zrzut ekranu końcowego wyniku.

Powiadomienie na pulpicie, które pojawia się po kliknięciu przycisku „Kliknij tutaj”:

Wyjaśnienie krok po kroku

Różne polecenia „import” w pierwszych kilku wierszach kodu importują niezbędne moduły wymagane do działania aplikacji. Moduły te udostępniają liczne klasy i funkcje, które można wykorzystać w aplikacji. "Żołnierz amerykański.Instrukcje require_version” zapewniają, że importowana jest tylko wymagana wersja biblioteki, aby uniknąć problemów ze zgodnością i awarii. W tym przypadku „3.0” służy do upewnienia się, że w aplikacji jest używana biblioteka GTK3, a nie GTK2 lub inna wersja GTK.

Podobnie jak klasa GTK, klasa Notify jest również importowana poprzez określenie jej wymaganej wersji (0.7 to najnowsza wersja w momencie pisania tego artykułu). Ta klasa będzie używana później w aplikacji.

importuj prezent
żołnierz amerykański.require_version("Gtk", "3.0")
żołnierz amerykański.require_version('Powiadom', '0.7')
z gi.import repozytorium Gtk
z gi.import repozytorium Powiadom

Następne podklasy instrukcji „Gtk.Window” jako klasa „MyWindow”. „Gtk.Okno.Metoda __init__” inicjuje konstruktor superklasy (Gtk.Window), z którego utworzono podklasę (MyWindow). W konstruktorze tytuł aplikacji jest również ustawiany jako „Hello World” za pomocą argumentu „title”. Domyślna geometria okna aplikacji jest również ustawiana poprzez określenie szerokości i wysokości w metodzie „set_default_size”.

class MyWindow(Gtk.Okno):
def __init__(self):
Gtk.Okno.__init__(self, title="Witaj świecie")
Gtk.Okno.set_default_size(self, 640, 480)

Następnie metoda „init” klasy Notify służy do inicjalizacji biblioteki „libnotify” poprzez podanie tytułu aplikacji. Bez inicjalizacji powiadomienia nie będą wysyłane i wyświetlane na pulpicie systemu Linux.

Notyfikować.init("Prosta aplikacja GTK3")

Instrukcja „box” dodaje pusty kontener układu do głównego okna aplikacji. Ten kontener jest jak puste płótno, na którym można umieścić dowolną liczbę widżetów. „Odstęp” odnosi się do przestrzeni między widżetami w jednostkach „pikseli”.

samego siebie.pudełko = Gtk.Pudełko (rozstaw=6)
samego siebie.dodaj (siebie.pudełko)

Nowy widżet przycisku „Kliknij tutaj” jest tworzony za pomocą „Gtk.Przycisk” metoda. Następnie jest wyrównywany do poziomych i pionowych środków układu macierzystego pudełka przy użyciu metod „set_halign” i „set_valign”. Przycisk jest połączony z sygnałem „kliknięty”, dzięki czemu po każdym naciśnięciu przycisku można wywołać metodę zwrotną „on_button_clicked”. Na koniec widżet przycisku jest wstawiany od lewej wzdłuż osi poziomej do układu pudełka za pomocą „pudełka.pack_start” metoda. Ta metoda przyjmuje cztery argumenty: obiekt widżetu, który ma zostać dodany, wartość logiczna do rozwijania widżetu, wartość logiczna do wypełniania widżetu oraz wypełnienie między dodanymi a innymi sąsiednimi widżetami.

samego siebie.przycisk = Gtk.Przycisk(label="Kliknij tutaj")
samego siebie.przycisk.set_halign(Gtk.Wyrównać.ŚRODEK)
samego siebie.przycisk.set_valign(Gtk.Wyrównać.ŚRODEK)
samego siebie.przycisk.connect("kliknięty", self.on_button_clicked)
samego siebie.pudełko.pack_start(self.przycisk, Prawda, Prawda, 0)

Metoda „on_button_click” jest wywoływana po każdym naciśnięciu przycisku „Kliknij tutaj”. Nowe powiadomienie jest tworzone przy użyciu metody „nowe”, która jako argumenty przyjmuje tytuł i treść powiadomienia. To powiadomienie jest następnie wyświetlane na pulpicie przy użyciu metody „pokaż”. Możesz także przenieść instrukcję „new” do głównego konstruktora, aby uniknąć ponownego tworzenia powiadomienia po każdym naciśnięciu przycisku.

def on_button_clicked(self, widget):
n = Powiadom.Powiadomienie.new("Prosta aplikacja GTK3", "Witaj świecie !!")
nie.pokazać()

Kilka następnych stwierdzeń dotyczy tworzenia, zarządzania i wyświetlania nowego okna aplikacji. Tworzona jest nowa instancja klasy „MyWindow” i jest ona podłączona do sygnału „destroy”, aby zapewnić prawidłowe zamknięcie aplikacji za każdym razem, gdy użytkownik zdecyduje się zamknąć aplikację, klikając przycisk „x”. Metoda „show_all” wyświetla okno aplikacji na pulpicie systemu Linux. Na koniec uruchamiana jest główna pętla aplikacji odpowiedzialna za obsługę zdarzeń i sygnałów.

Wniosek

GTK3 i Qt to jedne z najpopularniejszych frameworków GUI używanych do tworzenia aplikacji działających natywnie w systemie Linux. Oba te frameworki pozwalają na pisanie głównej logiki w językach C++ i Python. Nie możesz się pomylić, wybierając jeden z tych zestawów narzędzi do następnego projektu aplikacji dla systemu Linux.

Gry 5 najlepszych kart do przechwytywania gier
5 najlepszych kart do przechwytywania gier
Wszyscy widzieliśmy i uwielbialiśmy strumieniowe rozgrywki na YouTube on. PewDiePie, Jakesepticye i Markiplier to tylko niektórzy z najlepszych graczy...
Gry Jak stworzyć grę na Linuksie
Jak stworzyć grę na Linuksie
Dziesięć lat temu niewielu użytkowników Linuksa przewidywało, że ich ulubiony system operacyjny pewnego dnia stanie się popularną platformą do gier dl...
Gry Open Source Ports of Commercial Game Engines
Open Source Ports of Commercial Game Engines
Free, open source and cross-platform game engine recreations can be used to play old as well as some of the fairly recent game titles. This article wi...