Piton

Hogyan lehet egyszerű alkalmazást létrehozni a Pythonban és a GTK3-ban

Hogyan lehet egyszerű alkalmazást létrehozni a Pythonban és a GTK3-ban
Ez a cikk elmagyarázza, hogyan lehet grafikus „Hello World” alkalmazást létrehozni Linux rendszerben a Python 3 programozási nyelv és a GTK3 GUI keretrendszer használatával. Az oktatóanyag összes kódmintáját a Python 3 teszteli.8.6 és GTK 3.24.23 az Ubuntu 20-on.10.

Telepítse a szükséges csomagokat

Alkalmazás Python 3 és GTK3 használatával történő létrehozásához telepítenie kell a Python-összerendeléseket a GObject könyvtárakhoz. Ez úgy valósítható meg, hogy telepíti a PyGObject csomagot, amely szinte minden nagyobb Linux disztribúció tárházában található. Ezeknek a függőségeknek az Ubuntuban történő telepítéséhez használja az alábbi parancsot:

$ sudo apt install python3 python3-gi

A PyGObject-et az itt elérhető forráskódból is lefordíthatja.

A Hello World alkalmazás teljes kódja

A Hello World alkalmazás teljes kódmintája, amely Python 3-ban és GTK3-ban íródott, alább található. Ez az alkalmazás egy „Hello World !!”Értesítés az asztalra egy gombnyomásra.

import gi
GI.igényel_version ("Gtk", "3.0 ")
GI.required_version ('Értesítés', '0.7 ')
a gi-től.adattár import Gtk
a gi-től.adattár importálása Értesítés
osztály MyWindow (Gtk.Ablak):
def __init __ (én):
Gtk.Ablak.__init __ (saját, cím = "Hello World")
Gtk.Ablak.set_default_size (self, 640, 480)
Értesítés.init ("Egyszerű GTK3 alkalmazás")
maga.mező = Gtk.Doboz (távolság = 6)
maga.add (self.doboz)
maga.gomb = Gtk.Gomb (címke = "Kattintson ide")
maga.gomb.set_halign (Gtk.Igazítsa.KÖZPONT)
maga.gomb.set_valign (Gtk.Igazítsa.KÖZPONT)
maga.gomb.csatlakozni ("kattintott", önálló.on_button_clicked)
maga.doboz.pack_start (self.gomb, True, True, 0)
def on_button_clicked (saját, widget):
n = Értesítés.Értesítés.új ("Simple GTK3 Application", "Hello World !!")
n.előadás()
win = MyWindow ()
győzelem.connect ("megsemmisíteni", Gtk.main_quit)
győzelem.Mutasd az összeset()
Gtk.fő()

Pillanatkép a végeredményről.

A „Kattintson ide” gombra kattintva érkező asztali értesítés:

Lépésről-lépésre magyarázat

Különböző „import” utasítások a kód első néhány sorában importálják az alkalmazás működéséhez szükséges modulokat. Ezek a modulok számos osztályt és funkciót tárnak fel, amelyek felhasználhatók az alkalmazáson belül. "GI.demand_version ”utasítások biztosítják, hogy csak a könyvtár szükséges verzióját importálják az kompatibilitási problémák és összeomlások elkerülése érdekében. Ebben az esetben „3.0 ”-ot használunk annak biztosítására, hogy a GTK3 könyvtárat használják az alkalmazásban, és ne a GTK2-t vagy a GTK bármely más verzióját.

A GTK osztályhoz hasonlóan a Notify osztály is importálódik a szükséges verziójának megadásával (0.7 a cikk írásakor a legújabb verzió). Ezt az osztályt később az alkalmazásban fogjuk használni.

import gi
GI.igényel_version ("Gtk", "3.0 ")
GI.required_version ('Értesítés', '0.7 ')
a gi-től.adattár import Gtk
a gi-től.adattár importálása Értesítés

A következő nyilatkozat a „Gtk.Ablak ”osztály„ MyWindow ”osztályként. A „Gtk.Ablak.__init__ ”módszer inicializálja a szuper osztály konstruktorát (Gtk.Ablak), amelyből létrehoztak egy alosztályt (MyWindow). A konstruktorban az alkalmazás címe szintén „Hello World” -ként van beállítva a „title” argumentummal. Az alkalmazásablak alapértelmezett geometriáját a szélesség és a magasság megadásával is megadhatja a „set_default_size” módszerben.

osztály MyWindow (Gtk.Ablak):
def __init __ (én):
Gtk.Ablak.__init __ (saját, cím = "Hello World")
Gtk.Ablak.set_default_size (self, 640, 480)

Ezután a Notify osztály „init” módszerével inicializáljuk a „libnotify” könyvtárat egy alkalmazás címének megadásával. Inicializálás nélkül az értesítéseket nem küldjük és nem jelenítjük meg a Linux asztalon.

Értesítés.init ("Egyszerű GTK3 alkalmazás")

A „box” utasítás egy üres elrendezési tárolót ad hozzá az alkalmazás főablakához. Ez a tároló olyan, mint egy üres vászon, ahová tetszőleges számú widgetet lehet feltenni. A „Spacing” a widgetek közötti helyet jelenti a „pixel” egységekben.

maga.mező = Gtk.Doboz (távolság = 6)
maga.add (self.doboz)

A „Gtk.Gomb ”módszer. Ezután a „set_halign” és a „set_valign” módszerekkel igazodik a szülődoboz elrendezésének vízszintes és függőleges középpontjához. A gomb a „kattintott” jelhez csatlakozik, így amikor a gombot megnyomja, meghívható az „on_button_clicked” visszahívási módszer. Végül a gomb widgetet a vízszintes tengely mentén balról a doboz elrendezésére kell beilleszteni a „doboz segítségével.pack_start ”módszer. Ennek a módszernek négy argumentuma van: a hozzáadandó widget-objektum, logikai érték a widget kibővítéséhez, logikai érték a widget kitöltéséhez, valamint a hozzáadott és más szomszédos widgetek közötti párnázás.

maga.gomb = Gtk.Gomb (címke = "Kattintson ide")
maga.gomb.set_halign (Gtk.Igazítsa.KÖZPONT)
maga.gomb.set_valign (Gtk.Igazítsa.KÖZPONT)
maga.gomb.csatlakozni ("kattintott", önálló.on_button_clicked)
maga.doboz.pack_start (self.gomb, True, True, 0)

Az „on_button_click” metódust a „Kattintson ide” gomb megnyomásakor hívják meg. Új értesítés jön létre az „új” módszerrel, amely az értesítés címét és tartalmát veszi érvként. Ez az értesítés azután megjelenik az asztalon a „show” módszerrel. Az „új” utasítás a fő konstruktorban is áthelyezhető, hogy elkerülje az értesítés újbóli létrehozását, amikor a gombot megnyomja.

def on_button_clicked (saját, widget):
n = Értesítés.Értesítés.új ("Simple GTK3 Application", "Hello World !!")
n.előadás()

A következő állítások egy új alkalmazásablak létrehozásáról, kezeléséről és megjelenítéséről szólnak. Létrejön egy új „MyWindow” osztálypéldány, és a „megsemmisítés” jelhez csatlakozik annak biztosítása érdekében, hogy az alkalmazás megfelelően bezáruljon, amikor a felhasználó az „x” gombra kattintva úgy dönt, hogy kilép az alkalmazásból. A „show_all” módszer megjeleníti az alkalmazásablakot a Linux asztalon. Végül lefut az események és jelek kezeléséért felelős fő alkalmazáskör.

Következtetés

A GTK3 és a Qt a legnépszerűbb GUI keretrendszerek, amelyeket natívan futó alkalmazások létrehozására használnak Linuxon. Mindkét keret lehetővé teszi, hogy fő logikát írjon C ++ és Python nyelvre. Nem tévedhet el, ha a következő Linux-alkalmazás projektjéhez bármelyiket kiválasztja.

Az egér bal oldali gombja nem működik a Windows 10 rendszeren
Ha dedikált egeret használ laptopjával vagy asztali számítógépével, de a az egér bal gombja nem működik a Windows 10/8/7 rendszeren valamilyen oknál f...
A kurzor véletlenszerűen ugrik vagy mozog, miközben gépel a Windows 10-ben
Ha úgy találja, hogy az egér kurzor önállóan, automatikusan, véletlenszerűen ugrik vagy mozog, miközben gépel Windows laptopba vagy számítógépbe, akko...
Az egér és az érintőpadok görgetési irányának megfordítása a Windows 10 rendszerben
Egér és Érintőpads nemcsak a számítást könnyűvé, de hatékonyabbá és kevésbé időigényessé is teszi. Nem tudunk elképzelni egy életet ezek nélkül az esz...