Python je vsestranski programski jezik, ki se lahko uporablja za implementacijo različnih vrst aplikacij. Ima veliko vrst modulov za ustvarjanje aplikacij, ki temeljijo na GUI (grafični uporabniški vmesnik). Python tkinter je eden izmed njih. Vsako namizno aplikacijo je mogoče preprosto implementirati z uporabo modula tkinter. Bolje bo, če imate osnovno znanje programiranja Python, da se naučite uporabljati modul Python tkinter. V tej vadnici so prikazane različne uporabe modula Python tkinter za ustvarjanje aplikacij GUI.
Namestite modul Tkinter
Modul tkinter ni privzeto nameščen v Python. Torej morate zagnati naslednji ukaz za namestitev modula tkinter v različici Python 3+:
$ sudo apt namestite python3-tk
Različni pripomočki Tkinter
Modul tkinter vsebuje različne pripomočke za različne namene.
Ime pripomočka | Namen |
Oznaka | Uporablja se za prikaz sporočila za pomoč uporabniku. |
Gumb | Uporablja se za dodajanje različnih gumbov v aplikaciji. |
Okvir | Deluje kot vsebnik gradnikov, ki vsebuje različne vrste gradnikov za oblikovanje organizirane oblike. |
Vstop | Uporablja se za prevzem enovrstičnega besedila od uporabnika. |
Gumb za preverjanje | Uporablja se za dodajanje gumbov potrditvenih polj za sprejemanje več vnosov od uporabnika iz več možnosti. |
Radijski gumb | Uporablja se za dodajanje izbirnih gumbov za en sam vnos uporabnika iz več možnosti. |
Gumb kombiniranega polja | Uporablja se za dodajanje spustnega seznama za en sam vnos uporabnika iz več možnosti. |
ListBox | Uporablja se za dodajanje seznamskega polja za sprejemanje več vnosov od uporabnika iz več možnosti. |
Besedilo | Uporablja se za prevzem večvrstičnega besedila od uporabnika. |
Sporočilo | Uporablja se za prikaz okna s sporočili za uporabnika. |
Drsni trak | Uporablja se za dodajanje drsnega traku v okno za pomikanje po oknu gor in dol. |
Gumb menija | Uporablja se za prikaz menija uporabniku. |
meni | Uporablja se za prikaz elementov menija uporabniku. |
PanedWindow | Deluje kot vsebnik pripomočkov, ki vsebuje vodoravno in navpično podokno. |
Zavihki | Uporablja se za dodajanje okna z zavihki v aplikaciji. |
Različni primeri Tkinterja
Uporaba nekaterih običajnih pripomočkov tkinter je prikazana v naslednjih primerih.
Primer 1: Ustvarite preprosto aplikacijo GUI
Ustvarite datoteko Python z naslednjo vsebino, ki prikaže pogovorno okno na sredini zaslona z naslovom ter določeno višino in širino:
#Uvoz potrebnega modula
iz tkinterjevega uvoza *
#Ustvari predmet za okno
tkobj = Tk ( )
#Nastavite naslov okna
tkobj.title ( 'Naučite se modula tkinter' )
#Nastavite višino in širino okna
tkobj.geometrija ( '300 x 150' )
#Nastavite položaj prikaza okna na sredino
tkobj.eval ( 'tk::PlaceWindow. center' )
#Zaženi Tkinter
tkobj.mainloop ( )
Izhod:
Po izvedbi skripta se prikaže naslednji rezultat. Prikaže se pogovorno okno z naslovom »Naučite se modula tkinter«:
Primer 2: Uporaba oznake in gumba
Ustvarite datoteko Python z naslednjim skriptom, ki prikaže okno z oznako in pogovorno okno:
#Uvoz potrebnega modulaiz tkinterjevega uvoza *
#Ustvari predmet za okno
tkobj = Tk ( )
#Nastavite naslov okna
tkobj.title ( 'Naučite se modula tkinter' )
#Nastavite višino in širino okna
tkobj.geometrija ( '400 x 150' )
#Določite objekt oznake
lbl = nalepka ( tkobj, besedilo = 'To je preprosto okno' )
#Dodaj oznako v okno
lbl.pak ( ipadx = 30 , ipads = dvajset )
#Določite predmet gumba
btn = Gumb ( tkobj, besedilo = 'klikni me' )
#Dodaj gumb v okno s položajem
btn.pack ( ipadx = 30 , ipads = 10 )
#Nastavite položaj prikaza okna na sredino
tkobj.eval ( 'tk::PlaceWindow. center' )
#Zaženi Tkinter
tkobj.mainloop ( )
Izhod:
Po izvedbi skripta se na sredini zaslona prikaže okno z oznako in gumbom.
Primer 3: Nastavite barvo pisave in barvo ozadja
Ustvarite datoteko Python z naslednjim skriptom, ki prikaže okno z oznako in barvitim gumbom. Tukaj se atribut ozadja uporablja za nastavitev barve ozadja gumba, atribut ospredja pa se uporablja za nastavitev barve pisave gumba:
#Uvoz potrebnega modulaiz tkinterjevega uvoza *
#Ustvari predmet za okno
tkobj = Tk ( )
#Nastavite naslov okna
tkobj.title ( 'Naučite se modula tkinter' )
#Nastavite višino in širino okna
tkobj.geometrija ( '400 x 150' )
#Določite objekt oznake
lbl = nalepka ( tkobj, besedilo = 'Nastavi barvo ozadja in ospredja' )
#Dodaj oznako v okno
lbl.pak ( ipadx = 30 , ipads = dvajset )
#Določite predmet gumba z barvo ozadja in ospredja
btn = Gumb ( tkobj, besedilo = 'klikni me' , ozadje = 'modra' , ospredje = 'rdeča' )
#Dodaj gumb v okno s položajem
btn.pack ( ipadx = 30 , ipads = 8 )
#Nastavite položaj prikaza okna na sredino
tkobj.eval ( 'tk::PlaceWindow. center' )
#Zaženi Tkinter
tkobj.mainloop ( )
Izhod:
Po izvedbi skripta se prikaže naslednje okno:
Primer 4: Uporaba okvirja
V naslednjem skriptu Python so oznaka in dva gumba prikazani znotraj gradnika z okvirjem. Ustvarite datoteko Python s skriptom, da preverite izhod:
#Uvoz potrebnega modulaiz tkinterjevega uvoza *
#Ustvari predmet za okno
tkobj = Tk ( )
#Nastavite naslov okna
tkobj.title ( 'tkinter modul' )
#Nastavite višino in širino okna
tkobj.geometrija ( '250 x 100' )
#Določite okvirne objekte
frm = okvir ( tkobj )
frm.pack ( )
lframe = okvir ( tkobj )
lframe.pack ( strani =LEVO )
rframe = Okvir ( tkobj )
rframe.pack ( strani =PRAV )
#Določite oznako znotraj okvirja
lbl = nalepka ( frm, besedilo = 'Uporaba okvirja' , fg = 'modra' )
lbl.pak ( )
#Določite gumbe znotraj okvirja
btn1 = Gumb ( lframe, besedilo = '' , fg = 'Črna' , bg = 'bela' )
btn2.pack ( strani =PRAV )
#Nastavite položaj prikaza okna na sredino
tkobj.eval ( 'tk::PlaceWindow. center' )
#Zaženi Tkinter
tkobj.mainloop ( )
Izhod:
Po izvedbi skripta se prikaže naslednji rezultat:
Primer 5: Obravnava dogodka gumba
Uporaba sporočilnega polja je prikazana v naslednjem skriptu. Polje s sporočilom se prikaže, ko kliknete gumb:
#Uvoz potrebnih moduloviz tkinterjevega uvoza *
iz sporočilnega polja za uvoz tkinterja
#Ustvari predmet za okno
tkobj = Tk ( )
#Nastavite naslov okna
tkobj.title ( 'Naučite se modula tkinter' )
#Nastavite višino in širino okna
tkobj.geometrija ( '400 x 150' )
#Določite funkcijo za prikaz sporočilnega polja
prikaz def ( ) :
messagebox.showinfo ( 'Informacije' , 'Kliknjen je gumb.' )
#Ustvarite besedilo oznake z barvo pisave, slogom in položajem
Oznaka ( tkobj, besedilo = 'Namizna aplikacija, ki uporablja tkinter.' , fg = 'zelena' ) .pack ( Paddy = 25 )
#Ustvarite gumb z orodjem za obravnavo gumbov
Gumb ( tkobj, besedilo = 'Pokaži sporočilo' , ukaz =zaslon ) .pack ( )
#Nastavite položaj prikaza okna na sredino
tkobj.eval ( 'tk::PlaceWindow. center' )
#Zaženi Tkinter
tkobj.mainloop ( )
Izhod:
Po izvedbi skripta se prikaže naslednje okno:
Po pritisku na gumb se prikaže naslednje sporočilo:
Primer 6: Vzemite vnos od uporabnika
V modulu tkinter je na voljo več gradnikov, ki sprejemajo vnos od uporabnika. Uporaba najpogostejših pripomočkov je prikazana v naslednjem skriptu. Ustvarite datoteko Python z naslednjo kodo, da preverite izhod:
#Uvoz potrebnih moduloviz tkinterjevega uvoza *
iz tkinter.ttk uvozi Combobox
iz tkinter uvozi ttk
uvozi tkinter kot tk
iz sporočilnega polja za uvoz tkinterja
#Ustvari predmet tkinter
tkobj = Tk ( )
#Nastavite naslov okna
tkobj.title ( 'Obrazec s podatki o uporabniku' )
#Nastavite višino in širino okna
tkobj.geometrija ( '550 x 320' )
#Definirajte funkcijo za prikaz vrednosti obrazca
def prikazne_vrednosti ( ) :
#Preberi enovrstično besedilo
ime = 'Ime:' + name_val.get ( ) + ' \n '
#Preberite izbrano vrednost izbirnega gumba
če gender.get ( ) == 1 :
g = 'moški'
drugače:
g = 'ženska'
g = 'Spol:' + g + ' \n '
#Preberite izbrane vrednosti potrditvenega polja
igra = ''
če g1.get ( ) == 1 :
igra = 'kriket'
če g2.get ( ) == 1 :
če igra ! = '' :
igra += ', ' + 'Nogomet'
drugače:
igra = 'Nogomet'
če g3.get ( ) == 1 :
če igra ! = '' :
igra += ', ' + 'Košarka'
drugače:
igra = 'Košarka'
igra = 'Igra:' + igra + ' \n '
#Preberite vrednosti kombiniranega polja
država = 'Država : ' + countryVal.get ( ) + ' \n '
#Preberite večvrstično besedilo
naslov = 'Naslov:' + addr.get ( '1,0' , 'konec' ) + ' \n '
#Spoji vse vrednosti, ki jih sprejmejo polja
form_values = ime + g + igra + država + naslov
#Prikaži vrednosti v sporočilnem polju
messagebox.showinfo ( 'Podrobnosti o podatkih o uporabniku' , vrednosti_obrazca )
#Ustvarite oznako in polje z imenom
Oznaka ( tkobj, besedilo = 'Ime:' ) .mesto ( x = 100 , in = dvajset )
name_val = StringVar ( )
ttk.Vstop ( tkobj, textvariable =name_val ) .pack ( Padx = 220 , Paddy = dvajset )
#Ustvarite oznako in izbirni gumb
Oznaka ( tkobj, besedilo = 'Spol:' ) .mesto ( x = 100 , in = 60 )
spol = IntVar ( )
gender.set ( 1 )
Radijski gumb ( tkobj, besedilo = 'moški' , spremenljivka =spol, vrednost = 1 ) .mesto ( x = 210 , in = 60 )
Radijski gumb ( tkobj, besedilo = 'ženska' , spremenljivka =spol, vrednost = 2 ) .mesto ( x = 290 , in = 60 )
#Ustvarite oznako in gumb potrditvenega polja
Oznaka ( tkobj, besedilo = 'Najljubša igra:' ) .mesto ( x = 100 , in = 100 )
g1 = IntVar ( )
g2 = IntVar ( )
g3 = IntVar ( )
Gumb za preverjanje ( tkobj, besedilo = 'kriket' , spremenljivka =g1 ) .mesto ( x = 210 , in = 100 )
Gumb za preverjanje ( tkobj, besedilo = 'Nogomet' , spremenljivka =g2 ) .mesto ( x = 290 , in = 100 )
Gumb za preverjanje ( tkobj, besedilo = 'Košarka' , spremenljivka =g3 ) .mesto ( x = 380 , in = 100 )
#Določite vrednosti tuple
podatki = ( 'Bangladeš' , 'Japonska' , 'ZDA' )
#Ustvari oznako in kombinirano polje
Oznaka ( tkobj, besedilo = 'Država : ' ) .mesto ( x = 100 , in = 140 )
countryVal = StringVar ( )
Kombinirano polje ( tkobj, vrednote =podatki, textvariable =countryVal ) .mesto ( x = 220 , in = 140 )
#Ustvari oznako in besedilno polje
Oznaka ( tkobj, besedilo = 'Naslov:' ) .mesto ( x = 100 , in = 180 )
naslov = ( tk.Besedilo ( tkobj, višina = 3 , premer = dvajset ) )
naslov ( x = 220 , in = 180 )
#Ustvarite gumb z orodjem za obravnavo gumbov
Gumb ( tkobj, besedilo = 'Pošlji' , ukaz =prikazne_vrednosti ) .mesto ( x = 250 , in = 250 )
#Zaženi Tkinter
tkobj.mainloop ( )
Izhod:
Po izvedbi skripta se prikaže naslednje okno:
Izpolnite polja obrazca in pritisnite na gumb 'Pošlji'.
Prikaže se naslednje sporočilo s poslanimi vrednostmi:
Zaključek
Metode uporabe modula Python tkinter za ustvarjanje aplikacij GUI so prikazane v tej vadnici z več primeri.