Installer nødvendige pakker
For å lage en app som bruker Python 3 og GTK3, må du installere Python -bindinger for Gobject Libraries. Dette kan gjøres ved å installere Pygobject -pakken som er inkludert i depoter av nesten alle store Linux -distribusjoner. For å installere disse avhengighetene i Ubuntu, kan du bruke kommandoen nedenfor:
$ sudo apt install python3 python3-giDu kan også samle Pygobject fra kildekoden tilgjengelig her.
Full kode for Hello World -applikasjonen
Full kodeprøve av en Hello World -søknad skrevet i Python 3 og GTK3 finner du nedenfor nedenfor. Denne applikasjonen sender en “Hello World !!”Varsling til skrivebordet på klikk på en knapp.
Importer GISkjermbilde av det endelige resultatet.
Desktopvarslingen som kommer når "Klikk her" -knappen klikker:
Trinn-for-trinn-forklaring
Ulike "import" -uttalelser i de første linjene i kodeimporten nødvendige moduler som kreves for at applikasjonen skal fungere. Disse modulene utsetter mange klasser og funksjoner som kan brukes i applikasjonen. “Gi.KREV_VERSION ”-uttalelser Forsikre deg om at bare den nødvendige versjonen av biblioteket importeres for å unngå kompatibilitetsproblemer og krasjer. I dette tilfellet “3.0 ”brukes til å sikre at GTK3 -biblioteket brukes i applikasjonen og ikke GTK2 eller noen annen versjon av GTK.
I likhet med GTK -klassen importeres varslingsklassen også ved å spesifisere den nødvendige versjonen (0.7 er den siste versjonen i skrivende stund denne artikkelen). Denne klassen vil bli brukt senere i applikasjonen.
Importer GINeste uttalelse underklasser “GTK.Window "-klassen som" MyWindow "-klassen. “GTK.Vindu.__init__ ”-metode initialiserer konstruktøren av superklassen (GTK.Vindu) hvorfra en underklasse (MyWindow) ble opprettet. I konstruktøren er applikasjonstittelen også satt som "Hello World" ved å bruke "tittelen" -argumentet. Standard geometri av applikasjonsvinduet er også angitt ved å spesifisere bredde og høyde i metoden "set_default_size".
Klasse MyWindow (GTK.Vindu):Neste, "init" -metode i varselklassen brukes til å initialisere "libnotify" -biblioteket ved å levere en applikasjonstittel. Uten initialisering vil ikke varsler blir sendt og vises på Linux -skrivebordet.
Gi beskjed.init ("enkel GTK3 -applikasjon")"Boks" -uttalelsen legger til en tom layoutbeholder i hovedprogramvinduet. Denne beholderen er som et tomt lerret der et antall widgeter kan settes på. “Avstand” refererer til rommet mellom widgeter i “Pixel” -enhetene.
selv-.Boks = GTK.Boks (avstand = 6)En ny knapp widget “Klikk her” opprettes ved hjelp av “GTK.Button ”-metode. Det er deretter på linje med horisontale og vertikale sentre for overordnede layout ved hjelp av "set_halign" og "set_valign" -metoder. Knappen er koblet til “Klikket” -signalet slik at når knappen trykker på, kan tilbakeringingsmetoden “ON_Button_Clicked” påberopes. Til slutt settes knappen widget inn fra venstre langs den horisontale aksen til boksen oppsettet ved hjelp av “Box.PACK_START ”-metode. Denne metoden tar fire argumenter: widgetobjektet som skal legges til, boolsk for å utvide widgeten, boolsk for å fylle widgeten, og polstring mellom tilsatte og andre tilstøtende widgeter.
selv-.knapp = gtk.Knapp (label = "Klikk her")Metoden “On_Button_Click” påkalles når "Klikk her" -knappen trykkes. En ny varsel opprettes ved hjelp av den "nye" metoden som tar varslingstittel og innhold som argumenter. Denne varslingen vises deretter på skrivebordet ved hjelp av "show" -metoden. Du kan også flytte den "nye" uttalelsen i hovedkonstruktøren for å unngå å gjenskape varselet når knappen trykkes.
def on_button_clicked (self, widget):De neste uttalelsene handler om å opprette, administrere og vise et nytt applikasjonsvindu. En ny forekomst av "MyWindow" -klassen opprettes, og den er koblet til "Destroy" -signalet for å sikre at applikasjonen blir stengt ordentlig når en bruker bestemmer seg for å avslutte applikasjonen ved å klikke på "X" -knappen. “Show_all” -metoden viser applikasjonsvinduet på Linux -skrivebordet. Til slutt kjøres den viktigste applikasjonssløyfen som er ansvarlig for håndtering av hendelser og signaler.
Konklusjon
GTK3 og QT er noen av de mest populære GUI -rammene som brukes til å lage applikasjoner som kjøres innfødt på Linux. Begge disse rammene lar deg skrive hovedlogikk på C ++ og Python -språk. Du kan ikke gå galt ved å velge noen av disse verktøyettene til ditt neste Linux -applikasjonsprosjekt.