Python on monipuolinen ohjelmointikieli, jolla voidaan toteuttaa erilaisia sovelluksia. Siinä on monenlaisia moduuleja GUI (Graphical User Interface) -pohjaisten sovellusten luomiseen. Python tkinter on yksi niistä. Mikä tahansa työpöytäsovellus voidaan toteuttaa helposti tkinter-moduulin avulla. On parempi, jos sinulla on perustiedot Python-ohjelmoinnista oppiaksesi Python tkinter -moduulin käyttötavat. Python tkinter -moduulin eri käyttötavat GUI-sovellusten luomiseen esitetään tässä opetusohjelmassa.
Asenna Tkinter-moduuli
Tkinter-moduulia ei ole asennettu Pythoniin oletusarvoisesti. Joten sinun on suoritettava seuraava komento asentaaksesi tkinter-moduulin Python 3+ -versioon:
$ sudo apt Asentaa python3-tk
Erilaiset Tkinter-widgetit
tkinter-moduuli sisältää erilaisia widgetejä eri tarkoituksiin.
Widgetin nimi | Tarkoitus |
Label | Sitä käytetään näyttämään auttava viesti käyttäjälle. |
Painike | Sitä käytetään erilaisten painikkeiden lisäämiseen sovellukseen. |
Kehys | Se toimii kuten widget-säilö, joka sisältää erityyppisiä widgetejä järjestetyn lomakkeen suunnittelemiseksi. |
Sisäänpääsy | Sitä käytetään ottamaan yksirivinen teksti käyttäjältä. |
Tarkistuspainike | Sitä käytetään lisäämään valintaruutupainikkeita, jotta käyttäjä voi syöttää useita tietoja useista vaihtoehdoista. |
Radiopainike | Sitä käytetään lisäämään valintanapit, jotta käyttäjä ottaa yksittäisen syötteen useista vaihtoehdoista. |
Combobox-painike | Sitä käytetään lisäämään avattava luettelo, joka ottaa yksittäisen syötteen käyttäjältä useista vaihtoehdoista. |
ListBox | Sitä käytetään lisäämään luetteloruutu, joka ottaa käyttäjältä useita syötteitä useista vaihtoehdoista. |
Teksti | Sitä käytetään ottamaan käyttäjältä monirivinen teksti. |
Viesti | Sitä käytetään viesti-ikkunan näyttämiseen käyttäjälle. |
Vierityspalkki | Sitä käytetään lisäämään ikkunaan vierityspalkki ikkunan vierittämiseksi ylös ja alas. |
Valikko-painike | Sitä käytetään valikon näyttämiseen käyttäjälle. |
Valikko | Sitä käytetään valikon kohteiden näyttämiseen käyttäjälle. |
PanedWindow | Se toimii kuten widget-säiliö, joka sisältää vaaka- ja pystyruudut. |
Välilehdet | Sitä käytetään välilehti-ikkunan lisäämiseen sovellukseen. |
Erilaisia Tkinter-esimerkkejä
Joidenkin yleisten tkinter-widgetien käyttö on esitetty seuraavissa esimerkeissä.
Esimerkki 1: Luo yksinkertainen GUI-sovellus
Luo Python-tiedosto, jossa on seuraava sisältö ja joka näyttää ruudun keskellä valintaikkunan, jossa on otsikko ja tietty korkeus ja leveys:
#Tuo tarvittava moduuli
tkinterin tuonnista *
#Luo objekti ikkunalle
tkobj = Tk ( )
#Aseta ikkunan otsikko
tkobj.title ( 'Opi tkinter-moduuli' )
#Aseta ikkunan korkeus ja leveys
tkobj.geometry ( '300x150' )
#Aseta ikkunan näyttöpaikka keskeisesti
tkobj.eval ( 'tk::PlaceWindow . keskusta' )
#Suorita Tkinter
tkobj.mainloop ( )
Lähtö:
Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen. Näyttöön tulee valintaikkuna, jonka otsikko on 'Learn tkinter module':
Esimerkki 2: Tarran ja painikkeen käyttö
Luo Python-tiedosto seuraavalla komentosarjalla, joka näyttää ikkunan, jossa on otsikko ja valintaikkuna:
#Tuo tarvittava moduulitkinterin tuonnista *
#Luo objekti ikkunalle
tkobj = Tk ( )
#Aseta ikkunan otsikko
tkobj.title ( 'Opi tkinter-moduuli' )
#Aseta ikkunan korkeus ja leveys
tkobj.geometry ( '400x150' )
#Määritä etikettiobjekti
lbl = etiketti ( tkobj, teksti = 'Se on yksinkertainen ikkuna' )
#Lisää tarra ikkunaan
lbl.pack ( ipadx = 30 , ipadit = kaksikymmentä )
#Määritä painikeobjekti
btn = Painike ( tkobj, teksti = 'Klikkaa minua' )
#Lisää painike ikkunaan sijainnilla
btn.pack ( ipadx = 30 , ipadit = 10 )
#Aseta ikkunan näyttöpaikka keskeisesti
tkobj.eval ( 'tk::PlaceWindow . keskusta' )
#Suorita Tkinter
tkobj.mainloop ( )
Lähtö:
Ikkuna, jossa on otsikko ja painike, ilmestyy näytön keskelle komentosarjan suorittamisen jälkeen.
Esimerkki 3: Aseta fontin väri ja taustaväri
Luo Python-tiedosto seuraavalla komentosarjalla, joka näyttää ikkunan, jossa on tarra ja värikäs painike. Tässä background-attribuuttia käytetään asettamaan painikkeen taustaväri ja foreground-attribuuttia painikkeen fontin värin asettamiseen:
#Tuo tarvittava moduulitkinterin tuonnista *
#Luo objekti ikkunalle
tkobj = Tk ( )
#Aseta ikkunan otsikko
tkobj.title ( 'Opi tkinter-moduuli' )
#Aseta ikkunan korkeus ja leveys
tkobj.geometry ( '400x150' )
#Määritä etikettiobjekti
lbl = etiketti ( tkobj, teksti = 'Aseta tausta- ja etualan väri' )
#Lisää tarra ikkunaan
lbl.pack ( ipadx = 30 , ipadit = kaksikymmentä )
#Määritä painikeobjekti tausta- ja etualan värillä
btn = Painike ( tkobj, teksti = 'Klikkaa minua' , tausta = 'sininen' , etualalla = 'punainen' )
#Lisää painike ikkunaan sijainnilla
btn.pack ( ipadx = 30 , ipadit = 8 )
#Aseta ikkunan näyttöpaikka keskeisesti
tkobj.eval ( 'tk::PlaceWindow . keskusta' )
#Suorita Tkinter
tkobj.mainloop ( )
Lähtö:
Seuraava ikkuna tulee näkyviin komentosarjan suorittamisen jälkeen:
Esimerkki 4: Kehyksen käyttö
Seuraavassa Python-skriptissä tarra ja kaksi painiketta näkyvät kehyswidgetissä. Luo Python-tiedosto komentosarjan kanssa tulostuksen tarkistamiseksi:
#Tuo tarvittava moduulitkinterin tuonnista *
#Luo objekti ikkunalle
tkobj = Tk ( )
#Aseta ikkunan otsikko
tkobj.title ( 'tkinter-moduuli' )
#Aseta ikkunan korkeus ja leveys
tkobj.geometry ( '250x100' )
#Määritä kehysobjektit
frm = Kehys ( tkobj )
frm.pack ( )
lframe = Kehys ( tkobj )
lframe.pack ( puolella = VASEN )
rframe = Kehys ( tkobj )
rframe.pack ( puolella = OIKEIN )
#Määritä etiketti kehyksen sisällä
lbl = etiketti ( alkaen, teksti = 'kehyksen käyttö' , fg = 'sininen' )
lbl.pack ( )
#Määritä painikkeet kehyksen sisällä
btn1 = Painike ( lframe, teksti = '' , fg = 'musta' , bg = 'valkoinen' )
btn2.pack ( puolella = OIKEIN )
#Aseta ikkunan näyttöpaikka keskeisesti
tkobj.eval ( 'tk::PlaceWindow . keskusta' )
#Suorita Tkinter
tkobj.mainloop ( )
Lähtö:
Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen:
Esimerkki 5: Käsittele painiketapahtumaa
Viestilaatikon käyttö näkyy seuraavassa skriptissä. Viestiruutu tulee näkyviin, kun painiketta napsautetaan:
#Tuo tarvittavat moduulittkinterin tuonnista *
tkinterin tuontiviestilaatikosta
#Luo objekti ikkunalle
tkobj = Tk ( )
#Aseta ikkunan otsikko
tkobj.title ( 'Opi tkinter-moduuli' )
#Aseta ikkunan korkeus ja leveys
tkobj.geometry ( '400x150' )
#Määritä toiminto viestilaatikon näyttämiseksi
def näyttö ( ) :
messagebox.showinfo ( 'Tiedot' , 'Painiketta klikataan.' )
#Luo tarrateksti fontin värillä, tyylillä ja sijainnilla
Label ( tkobj, teksti = 'Tkinteriä käyttävä työpöytäsovellus.' , fg = 'vihreä' ) .pakkaus ( Paddy = 25 )
#Luo painike painikkeenkäsittelijällä
Painike ( tkobj, teksti = 'Näytä viesti' , komento = näyttö ) .pakkaus ( )
#Aseta ikkunan näyttöpaikka keskeisesti
tkobj.eval ( 'tk::PlaceWindow . keskusta' )
#Suorita Tkinter
tkobj.mainloop ( )
Lähtö:
Seuraava ikkuna tulee näkyviin komentosarjan suorittamisen jälkeen:
Seuraava viestiruutu tulee näkyviin painikkeen painamisen jälkeen:
Esimerkki 6: Ota syöte käyttäjältä
Tkinter-moduulissa on useita widgetejä, jotka vastaanottavat syötteitä käyttäjältä. Yleisimpien widgetien käyttötavat on esitetty seuraavassa skriptissä. Luo Python-tiedosto seuraavalla koodilla tarkistaaksesi tulosteen:
#Tuo tarvittavat moduulittkinterin tuonnista *
tkinter.ttk import Comboboxista
tkinter importista ttk
tuonti tkinter kuten tk
tkinterin tuontiviestilaatikosta
#Luo tkinter-objekti
tkobj = Tk ( )
#Aseta ikkunan otsikko
tkobj.title ( 'Käyttäjätietolomake' )
#Aseta ikkunan korkeus ja leveys
tkobj.geometry ( '550x320' )
#Määritä funktio lomakearvojen näyttämiseksi
def display_values ( ) :
#Lue yksirivinen teksti
nimi = 'Nimi:' + name_val.get ( ) + ' \n '
#Lue valitun valintanapin arvo
jos gender.get ( ) == 1 :
g = 'Uros'
muu:
g = 'Nainen'
g = 'Sukupuoli:' + g + ' \n '
#Lue valitut valintaruutujen arvot
peli = ''
jos g1.get ( ) == 1 :
peli = 'Kriketti'
jos g2.get ( ) == 1 :
jos peli ! = '' :
peli += ', ' + 'Jalkapallo'
muu:
peli = 'Jalkapallo'
jos g3.get ( ) == 1 :
jos peli ! = '' :
peli += ', ' + 'Koripallo'
muu:
peli = 'Koripallo'
peli = 'Peli:' + peli + ' \n '
#Lue yhdistelmälaatikon arvot
maa = 'Maa : ' + countryVal.get ( ) + ' \n '
#Lue monirivinen teksti
osoite = 'Osoite:' + addr.get ( '1.0' , 'loppu' ) + ' \n '
#Yhdistä kaikki kenttien arvot
form_values = nimi + g + peli + maa + osoite
#Näytä arvot viestiruudussa
messagebox.showinfo ( 'Käyttäjän tiedot' , muoto_arvot )
#Luo tarra ja nimikenttä
Label ( tkobj, teksti = 'Nimi:' ) .paikka ( x = 100 , ja = kaksikymmentä )
name_val = MerkkijonoVar ( )
ttk.Sisäänpääsy ( tkobj, tekstimuuttuja =nimi_val ) .pakkaus ( Padx = 220 , Paddy = kaksikymmentä )
#Luo tarra ja valintanappi
Label ( tkobj, teksti = 'Sukupuoli:' ) .paikka ( x = 100 , ja = 60 )
sukupuoli = IntVar ( )
gender.set ( 1 )
Radiopainike ( tkobj, teksti = 'Uros' , muuttuja = sukupuoli, arvo = 1 ) .paikka ( x = 210 , ja = 60 )
Radiopainike ( tkobj, teksti = 'Nainen' , muuttuja = sukupuoli, arvo = 2 ) .paikka ( x = 290 , ja = 60 )
#Luo tarra ja valintaruutupainike
Label ( tkobj, teksti = 'Lempipeli:' ) .paikka ( x = 100 , ja = 100 )
g1 = IntVar ( )
g2 = IntVar ( )
g3 = IntVar ( )
Tarkistuspainike ( tkobj, teksti = 'Kriketti' , muuttuja =g1 ) .paikka ( x = 210 , ja = 100 )
Tarkistuspainike ( tkobj, teksti = 'Jalkapallo' , muuttuja =g2 ) .paikka ( x = 290 , ja = 100 )
Tarkistuspainike ( tkobj, teksti = 'Koripallo' , muuttuja =g3 ) .paikka ( x = 380 , ja = 100 )
#Määritä tuple-arvot
data = ( 'Bangladesh' , 'Japani' , 'USA' )
#Luo tarra ja yhdistelmälaatikko
Label ( tkobj, teksti = 'Maa : ' ) .paikka ( x = 100 , ja = 140 )
countryVal = StringVar ( )
Yhdistelmälaatikko ( tkobj, arvot =data, tekstimuuttuja =maaVal ) .paikka ( x = 220 , ja = 140 )
#Luo tarra ja tekstikenttä
Label ( tkobj, teksti = 'Osoite:' ) .paikka ( x = 100 , ja = 180 )
addr = ( tk.Teksti ( tkobj, korkeus = 3 , leveys = kaksikymmentä ) )
addr.place ( x = 220 , ja = 180 )
#Luo painike painikkeenkäsittelijällä
Painike ( tkobj, teksti = 'Lähetä' , komento =näytä_arvot ) .paikka ( x = 250 , ja = 250 )
#Suorita Tkinter
tkobj.mainloop ( )
Lähtö:
Seuraava ikkuna tulee näkyviin komentosarjan suorittamisen jälkeen:
Täytä lomakkeen kentät ja paina 'Lähetä'-painiketta.
Näkyviin tulee seuraava viestilaatikko lähetetyillä arvoilla:
Johtopäätös
Menetelmät Python tkinter -moduulin käyttämiseksi GUI-sovellusten luomiseen esitetään tässä opetusohjelmassa useilla esimerkeillä.