Asenna tarvittavat paketit
Jos haluat luoda sovelluksen Python 3: lla ja GTK3: lla, sinun on asennettava Python-sidokset GObject-kirjastoille. Tämä voidaan tehdä asentamalla PyGObject-paketti, joka sisältyy melkein kaikkien tärkeimpien Linux-jakelujen arkistoihin. Voit asentaa nämä riippuvuudet Ubuntuun käyttämällä seuraavaa komentoa:
$ sudo apt asenna python3 python3-giVoit myös kääntää PyGObjectin täältä saatavasta lähdekoodista.
Hello World -sovelluksen täydellinen koodi
Python 3: een ja GTK3: een kirjoitetun Hello World -sovelluksen täydellinen koodinäyte löytyy alla. Tämä sovellus lähettää “Hello World !!”Ilmoitus työpöydälle napin painalluksella.
tuonti gigi.pieprasa_versio ("Gtk", "3.0 ")
gi.pieprasa_versio ('Ilmoita', '0.7 ')
gi: stä.arkiston tuonti Gtk
gi: stä.arkiston tuonti Ilmoita
luokka MyWindow (GTK.Ikkuna):
def __init __ (itse):
Gtk.Ikkuna.__init __ (itse, otsikko = "Hei maailma")
Gtk.Ikkuna.set_default_size (itse, 640, 480)
Ilmoittaa.init ("Yksinkertainen GTK3-sovellus")
itse.ruutu = GTK.Laatikko (väli = 6)
itse.lisää (itse.laatikko)
itse.painike = GTK.Painike (tunniste = "Napsauta tätä")
itse.-painiketta.set_halign (GTK.Kohdistaa.KESKUSTA)
itse.-painiketta.set_valign (GTK.Kohdistaa.KESKUSTA)
itse.-painiketta.muodosta yhteys ("napsautettu", itse.on_button_clicked)
itse.laatikko.pack_start (itse.-painike, True, True, 0)
def on_button_clicked (itse, widget):
n = Ilmoita.Ilmoitus.uusi ("Yksinkertainen GTK3-sovellus", "Hei maailma !!")
n.näytä()
win = Oma ikkuna ()
voittaa.connect ("tuhota", Gtk.main_quit)
voittaa.näytä kaikki()
Gtk.main ()
Näyttökuva lopputuloksesta.
Työpöytäilmoitus, joka saapuu, kun napsautetaan napsauttamalla tätä -painiketta, napsautetaan:
Vaiheittainen selitys
Erilaiset "tuonti" -lauseet koodin muutamalla ensimmäisellä rivillä tuovat tarvittavat moduulit, jotta sovellus toimisi. Nämä moduulit paljastavat lukuisia luokkia ja toimintoja, joita voidaan käyttää sovelluksessa. "Gi.demand_version ”-lausekkeet varmistavat, että vain vaadittu kirjaston versio tuodaan yhteensopivuusongelmien ja kaatumisten välttämiseksi. Tässä tapauksessa ”3.0 ”käytetään varmistamaan, että sovelluksessa käytetään GTK3-kirjastoa eikä GTK2: ta tai muuta GTK: n versiota.
Samoin kuin GTK-luokka, myös Notify-luokka tuodaan määrittämällä sen vaadittu versio (0.7 on viimeisin versio tämän artikkelin kirjoittamisen aikaan). Tätä luokkaa käytetään myöhemmin sovelluksessa.
tuonti gigi.pieprasa_versio ("Gtk", "3.0 ")
gi.pieprasa_versio ('Ilmoita', '0.7 ')
gi: stä.arkiston tuonti Gtk
gi: stä.arkiston tuonti Ilmoita
Seuraava lausunto alaluokissa “Gtk.Ikkuna ”-luokan” MyWindow ”-luokan. "Gtk.Ikkuna.__init__ ”-menetelmä alustaa superluokan (Gtk.Ikkuna), josta alaluokka (MyWindow) luotiin. Konstruktorissa sovelluksen otsikoksi asetetaan myös "Hello World" käyttämällä "title" -argumenttia. Sovellusikkunan oletusgeometria asetetaan myös määrittämällä leveys ja korkeus "set_default_size" -menetelmässä.
luokka MyWindow (GTK.Ikkuna):def __init __ (itse):
Gtk.Ikkuna.__init __ (itse, otsikko = "Hei maailma")
Gtk.Ikkuna.set_default_size (itse, 640, 480)
Seuraavaksi Notify-luokan ”init” -menetelmää käytetään ”libnotify” -kirjaston alustamiseen toimittamalla sovelluksen otsikko. Ilman alustamista ilmoituksia ei lähetetä eikä näytetä Linux-työpöydällä.
Ilmoittaa.init ("Yksinkertainen GTK3-sovellus")"Box" -käsky lisää tyhjän asettelusäiliön sovelluksen pääikkunaan. Tämä kontti on kuin tyhjä kangas, johon voidaan laittaa mikä tahansa määrä widgettejä. "Välit" tarkoittaa widgetien välistä tilaa "pikseli" -yksiköissä.
itse.ruutu = GTK.Laatikko (väli = 6)itse.lisää (itse.laatikko)
Uusi painike-widget ”Click Here” luodaan Gtk.Button ”-menetelmä. Sen jälkeen se kohdistetaan päälokeron asettelun vaaka- ja pystysuuntaisiin keskipisteisiin menetelmillä ”set_halign” ja “set_valign”. Painike kytketään napsautettuun signaaliin, jotta aina kun painiketta painetaan, voidaan kutsua takaisinsoittomenetelmä "on_button_clicked". Lopuksi painike-widget lisätään vasemmalta vaaka-akselia pitkin ruutulaatikkoon käyttämällä “ruutua.pack_start ”menetelmä. Tässä menetelmässä on neljä argumenttia: lisättävä widget-objekti, boolean widgetin laajentamiseksi, boolean widgetin täyttämiseksi ja täyte lisättyjen ja muiden vierekkäisten widgetien välillä.
itse.painike = GTK.Painike (tunniste = "Napsauta tätä")itse.-painiketta.set_halign (GTK.Kohdistaa.KESKUSTA)
itse.-painiketta.set_valign (GTK.Kohdistaa.KESKUSTA)
itse.-painiketta.muodosta yhteys ("napsautettu", itse.on_button_clicked)
itse.laatikko.pack_start (itse.-painike, True, True, 0)
"On_button_click" -menetelmää käytetään aina, kun "Click Here" -painiketta painetaan. Uusi ilmoitus luodaan "uudella" menetelmällä, jossa ilmoituksen otsikko ja sisältö otetaan argumentteina. Tämä ilmoitus näytetään sitten työpöydällä käyttämällä "näytä" -menetelmää. Voit myös siirtää "uuden" käskyn päärakennimessa välttääksesi ilmoituksen luomisen uudelleen, kun painiketta painetaan.
def on_button_clicked (itse, widget):n = Ilmoita.Ilmoitus.uusi ("Yksinkertainen GTK3-sovellus", "Hei maailma !!")
n.näytä()
Seuraavat lauseet koskevat uuden sovellusikkunan luomista, hallintaa ja näyttämistä. Uusi “MyWindow” -luokan instanssi luodaan ja se yhdistetään “tuhota” -signaaliin varmistaakseen, että sovellus suljetaan oikein, kun käyttäjä päättää sulkea sovelluksen napsauttamalla “x” -painiketta. "Show_all" -menetelmä näyttää sovellusikkunan Linux-työpöydälläsi. Lopuksi suoritetaan tapahtumien ja signaalien käsittelystä vastaava pääsilmukka.
Johtopäätös
GTK3 ja Qt ovat suosituimpia graafisen käyttöliittymän kehyksiä, joita käytetään luontevasti Linuxissa toimivien sovellusten luomiseen. Molempien näiden kehysten avulla voit kirjoittaa päälogiikan C ++ - ja Python-kielillä. Et voi mennä pieleen valitsemalla minkä tahansa näistä työkalupakkeista seuraavalle Linux-sovellusprojektillesi.