Python

Ako vytvoriť jednoduchú aplikáciu v Pythone a GTK3

Ako vytvoriť jednoduchú aplikáciu v Pythone a GTK3
Tento článok vysvetlí, ako vytvoriť grafickú aplikáciu „Hello World“ v systéme Linux pomocou programovacieho jazyka Python 3 a rámca GTK3 GUI. Všetky ukážky kódu v tejto príručke sú testované s programom Python 3.8.6 a GTK 3.24.23 na Ubuntu 20.10.

Nainštalujte si potrebné balíčky

Ak chcete vytvoriť aplikáciu pomocou Pythonu 3 a GTK3, musíte si nainštalovať väzby Pythonu pre knižnice GObject. To sa dá dosiahnuť inštaláciou balíka PyGObject zahrnutého do úložísk takmer všetkých hlavných distribúcií Linuxu. Ak chcete nainštalovať tieto závislosti v Ubuntu, môžete použiť nasledujúci príkaz:

$ sudo apt nainštalovať python3 python3-gi

Môžete tiež zostaviť PyGObject zo zdrojového kódu dostupného tu.

Celý kód aplikácie Hello World

Celú ukážku kódu aplikácie Hello World napísanú v jazykoch Python 3 a GTK3 nájdete nižšie. Táto aplikácia odošle „Hello World !!”Upozornenie na plochu po kliknutí na tlačidlo.

import gi
gi.require_version ("Gtk", "3.0 ")
gi.require_version ('Notify', '0.7 ')
od gi.import repozitára Gtk
od gi.import úložiska Upozorniť
trieda MyWindow (Gtk.Okno):
def __init __ (self):
Gtk.Okno.__init __ (self, title = "Hello World")
Gtk.Okno.set_default_size (self, 640, 480)
Upozorniť.init („Jednoduchá aplikácia GTK3“)
ja.krabica = Gtk.Krabica (rozstupy = 6)
ja.pridať (ja.box)
ja.tlačidlo = Gtk.Tlačidlo (štítok = "Kliknite sem")
ja.tlačidlo.set_halign (Gtk.Zarovnať.STRED)
ja.tlačidlo.set_valign (Gtk.Zarovnať.STRED)
ja.tlačidlo.pripojiť sa (kliknutie), vlastné.on_button_clicked)
ja.box.pack_start (vlastný.tlačidlo, True, True, 0)
def on_button_clicked (self, widget):
n = upozorniť.Oznámenie.nové („Jednoduchá aplikácia GTK3“, „Hello World !!„)
n.šou()
win = MyWindow ()
vyhrať.spojiť („zničiť“, Gtk.main_quit)
vyhrať.ukázať všetko()
Gtk.hlavný()

Screenshot konečného výsledku.

Upozornenie na pracovnej ploche, ktoré sa zobrazí po kliknutí na tlačidlo „Kliknite sem“:

Podrobné vysvetlenie

Rôzne príkazy „importu“ v prvých niekoľkých riadkoch kódu importujú potrebné moduly potrebné na fungovanie aplikácie. Tieto moduly vystavujú početné triedy a funkcie, ktoré je možné v aplikácii použiť. "Gi.".príkazy require_version ”zabezpečujú, aby sa importovala iba požadovaná verzia knižnice, aby sa zabránilo problémom s kompatibilitou a zlyhaniam. V takom prípade „3.0 ”sa používa na zabezpečenie toho, aby sa v aplikácii používala knižnica GTK3, a nie GTK2 alebo iná verzia GTK.

Podobne ako v prípade triedy GTK sa aj trieda Notify importuje zadaním požadovanej verzie (0.7 je posledná verzia v čase písania tohto článku). Táto trieda bude použitá neskôr v aplikácii.

import gi
gi.require_version ("Gtk", "3.0 ")
gi.require_version ('Notify', '0.7 ')
od gi.import repozitára Gtk
od gi.import úložiska Upozorniť

Nasledujúci príkaz je podtriedou „Gtk.Trieda „Okno“ ako trieda „MyWindow“. „Gtk.Okno.Metóda __init__ ”inicializuje konštruktor super triedy (Gtk.Window), z ktorej bola vytvorená podtrieda (MyWindow). V konštruktore je názov aplikácie tiež nastavený ako „Hello World“ pomocou argumentu „title“. Predvolená geometria okna aplikácie sa nastavuje aj zadaním šírky a výšky v metóde „set_default_size“.

trieda MyWindow (Gtk.Okno):
def __init __ (self):
Gtk.Okno.__init __ (self, title = "Hello World")
Gtk.Okno.set_default_size (self, 640, 480)

Ďalej sa na inicializáciu knižnice „libnotify“ zadaním názvu aplikácie použije metóda „init“ triedy Notify. Bez inicializácie sa upozornenia nebudú odosielať a zobrazovať na pracovnej ploche systému Linux.

Upozorniť.init („Jednoduchá aplikácia GTK3“)

Príkaz „box“ pridá do hlavného okna aplikácie prázdny kontajner rozloženia. Tento kontajner je ako prázdne plátno, na ktoré je možné vložiť ľubovoľný počet miniaplikácií. „Medzery“ označujú priestor medzi widgetmi v jednotkách „pixelov“.

ja.krabica = Gtk.Škatuľka (rozteč = 6)
ja.pridať (ja.box)

Nový widget pre tlačidlá „Kliknite sem“ sa vytvára pomocou nástroja „Gtk.Gombíková “metóda. Potom sa pomocou metód „set_halign“ a „set_valign“ zarovná do vodorovného a zvislého stredu rozloženia nadradenej skrinky. Tlačidlo je spojené so signálom „kliknutia“, takže pri každom stlačení tlačidla je možné vyvolať metódu spätného volania „on_button_clicked“. Nakoniec sa miniaplikácia s tlačidlami vkladá zľava pozdĺž vodorovnej osi do rozloženia poľa.pack_start ”metóda. Táto metóda vyžaduje štyri argumenty: objekt widgetu, ktorý sa má pridať, boolean na rozšírenie widgetu, boolean na vyplnenie widgetu a výplň medzi pridanými a ostatnými susednými widgetmi.

ja.tlačidlo = Gtk.Tlačidlo (štítok = "Kliknite sem")
ja.tlačidlo.set_halign (Gtk.Zarovnať.STRED)
ja.tlačidlo.set_valign (Gtk.Zarovnať.STRED)
ja.tlačidlo.pripojiť sa (kliknutie), vlastné.on_button_clicked)
ja.box.pack_start (vlastné.tlačidlo, True, True, 0)

Metóda „on_button_click“ sa vyvolá vždy, keď sa stlačí tlačidlo „Kliknite sem“. Nové oznámenie sa vytvára pomocou metódy „nová“, ktorá berie názov a obsah oznámenia ako argumenty. Toto upozornenie sa potom zobrazí na pracovnej ploche pomocou metódy „zobraziť“. Môžete tiež presunúť príkaz „new“ v hlavnom konštruktore, aby ste zabránili opätovnému vytváraniu upozornenia pri každom stlačení tlačidla.

def on_button_clicked (self, widget):
n = upozorniť.Oznámenie.nové („Jednoduchá aplikácia GTK3“, „Hello World !!„)
n.šou()

Nasledujúcich niekoľko vyhlásení sa týka vytvorenia, správy a zobrazenia nového okna aplikácie. Vytvorí sa nová inštancia triedy „MyWindow“, ktorá je pripojená k signálu „zničenia“, aby sa zabezpečilo správne zatvorenie aplikácie, kedykoľvek sa používateľ rozhodne aplikáciu ukončiť kliknutím na tlačidlo „x“. Metóda „show_all“ zobrazuje okno aplikácie na pracovnej ploche systému Linux. Nakoniec sa spustí hlavná aplikačná slučka zodpovedná za spracovanie udalostí a signálov.

Záver

GTK3 a Qt sú niektoré z najpopulárnejších rámcov GUI používaných na vytváranie aplikácií, ktoré natívne bežia na systéme Linux. Oba tieto rámce vám umožňujú písať hlavnú logiku v jazykoch C ++ a Python. Výberom ktorejkoľvek z týchto súprav nástrojov pre ďalší projekt aplikácií pre systém Linux sa nemôžete pokaziť.

Hry Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 vydané minulý mesiac, je šiestym vývojovým vydaním v 1.13.séria x a prináša množstvo vylepšení, najmä používateľského rozhra...
Hry Ako nainštalovať League Of Legends na Ubuntu 14.04
Ako nainštalovať League Of Legends na Ubuntu 14.04
Ak ste fanúšikom League of Legends, potom je to pre vás príležitosť otestovať spustenie League of Legends. Upozorňujeme, že program PlayOnLinux podpor...
Hry Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
OpenRA je herný engine Libre / Free Real Time Strategy, ktorý obnovuje rané hry z Westwoodu, ako napríklad klasické Command & Conquer: Red Alert. Dist...