Python

Kuinka luoda yksinkertainen sovellus Pythonissa ja GTK3 ssa

Kuinka luoda yksinkertainen sovellus Pythonissa ja GTK3 ssa
Tässä artikkelissa kerrotaan, miten luodaan graafinen "Hello World" -sovellus Linuxissa käyttämällä Python 3 -ohjelmointikieliä ja GTK3 GUI -kehystä. Kaikki opetusohjelman koodinäytteet testataan Python 3: lla.8.6 ja GTK 3.24.23 Ubuntu 20: ssä.10.

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-gi

Voit 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 gi
gi.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 gi
gi.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.

AppyMouse On-screen Trackpad and Mouse Pointer for Windows Tablets
Tablet users often miss the mouse pointer, especially when they are habitual to using the laptops. The touchscreen Smartphones and tablets come with m...
Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...
How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...