Tkinter je alat za grafičko korisničko sučelje (GUI) koji biste trebali isprobati ako želite istražiti snagu Pythona u stvaranju aplikacija za radnu površinu.

Ovdje ćemo pogledati osnove Tkinter GUI modula.

Postavljanje Tkintera

Obično ne trebate instalirati tkinter zasebno ako ste instalirali noviju verziju Pythona, počevši od Pythona 3. Knjižnica možda neće raditi sa starim verzijama Pythona. To je uobičajeni problem za korisnike Maca i Linuxa, jer ti OS-ovi obično imaju zadane starije verzije Pythona.

Općenito, za korištenje tkinter modul, osigurajte da sa službenog preuzmete i instalirate najnoviju kompatibilnu verziju Pythona na svoje računalo python.org web stranica.

Ako ste na Macu, možete preuzeti i najnoviju verziju ActiveTcl, a tkinter sastavljač iz ActiveState.

Kako koristiti Tkinter

Tkinter ovisi o svojoj ugrađenoj TK razred. I ona završava sve događaje unutar GUI-ja u glavnu petlju. Dakle, glavnu petlju omot čini vaš tkinter izvršni kod.

Za početak tkinter:

iz tkinter uvoza Tk
Tk (). Mainloop ()
instagram viewer

Pokretanje gornjeg koda zavrti prazno tkinter okvir.

Značajke prilagodbe Tkintera, međutim, nalaze se u njegovim ugrađenim widgetima.

Da biste koristili ove widgete, možete ih uvesti iz tkinter zamjenom iz tkinter uvoza Tk s:

iz tkinter uvoza *
t = Tk ()
t.mainloop ()

Veličinu prozora možete prilagoditi i pomoću geometrija funkciju, a zatim navedite naslov pomoću titula dodatak za tkinter:

t = Tk ()
t.geometrija ("600x600")
t.title ("Tk Tutorial")
t.mainloop ()

Tkinter vam omogućuje pisanje običnih tekstova izravno u GUI pomoću Označiti widget:

t = Tk ()
Oznaka (t, text = "MUO Tkinter tutorial"). Grid ()
t.mainloop ()

The rešetka () metoda, međutim, alternativa je paket() metoda. Zalijepi vaše widgete na GUI, čineći ih vidljivima.

Također možete odrediti font za svoj Označiti tekst:

t = Tk ()
Oznaka (t, text = "MUO Tkinter tutorial", font = (60)). Grid ()
t.mainloop ()

Gumbi su neki od najčešće korištenih widgeta u tkinter. A ove gumbe na koje možete kliknuti možete dodati u svoj GUI pomoću različitih ugrađenih widgeta za gumbe.

Evo kako dodati primarni gumb u svoj GUI pomoću Dugme widget:

t = Tk ()
Gumb (t, text = "Kliknivo", bg = "crno", fg = "bijelo"). Grid ()
t.mainloop ()

The bg i fg ključne riječi opisuju boju pozadine gumba i boju teksta unutar njega.

Također možete prilagoditi dimenziju gumba uključivanjem znaka visina i širina parametri:

t = Tk ()
Gumb (t, text = "Kliknivo", bg = "crno", fg = "bijelo", visina = "2", širina = "10"). Grid ()
t.mainloop ()

Evo rezultata za to:

A ako želite gumb učiniti vizualno privlačnijim, možete dodati i olakšanje i zatim prilagodite njezinu širinu obruba:

t = Tk ()
Gumb (t, text = "Kliknivo", bg = "plavo", fg = "bijelo",
visina = 2, širina = 10, reljef = PODIGNUTO, širina obruba = 6) .grid ()
t.mainloop ()

A to izgleda ovako:

Zamijeniti PODIGNUTO s RAVAN da vidim kako to prolazi.

Možete dodati onoliko gumba koliko želite. Ali pripazite da izbjegnete preklapanje sadržaja.

Da biste izbjegli preklapanje, možete odrediti položaj retka i stupca za svaki gumb:

t = Tk ()
Gumb (t, tekst = 1, bg = "crno", fg = "bijelo"). Mreža (redak = 1, stupac = 1)
Gumb (t, tekst = 2, bg = "crno", fg = "bijelo"). Mreža (redak = 2, stupac = 1)
Gumb (t, tekst = 3, bg = "crno", fg = "bijelo"). Mreža (redak = 3, stupac = 1)
Gumb (t, tekst = 4, bg = "crno", fg = "bijelo"). Mreža (redak = 4, stupac = 1)
t.mainloop ()

Neobvezno naredba ključna riječ, međutim, dodaje događaje u Dugme widget. U osnovi, usidri opcionalnu funkciju koja obrađuje određene događaje kada kliknete gumb.

Na primjer, donji kod množi vrijednost svakog gumba sa 6 kad ga kliknete. I temelji se na unaprijed definiranoj funkciji:

pritiskanje gumba def (r):
r = 6 * r
Oznaka (t, text = r, font = (60)). Mreža (redak = 5, stupac = 2)
t = Tk ()
Gumb (t, tekst = 1, bg = "crno", fg = "bijelo", širina = 10, visina = 2,
naredba = lambda: pritiskanje gumba (1)). mreža (red = 1, stupac = 1, pady = 6)
Gumb (t, tekst = 2, bg = "crno", fg = "bijelo", širina = 10,
naredba = lambda: pritiskanje gumba (2)). mreža (red = 2, stupac = 1, pady = 6)
Gumb (t, tekst = 3, bg = "crno", fg = "bijelo", širina = 10,
naredba = lambda: pritiskanje gumba (3)). mreža (redak = 3, stupac = 1, pady = 6)
Gumb (t, tekst = 4, bg = "crno", fg = "bijelo", širina = 10,
naredba = lambda: pritiskanje gumba (4)). mreža (red = 4, stupac = 1, pady = 6)
t.mainloop ()

U gornjem kodu, pritiskanje tipki obrađuje množenje. The Dugme widget zatim pokazuje anonimno na taj rukovatelj događajima lambda funkcija.

A ako ste zabrinuti zbog pady ključna riječ, jasno odvaja svaki gumb u retku. Zamjenjujući ovo sa padx odvaja gumbe preko stupca. A možete istovremeno koristiti obje ključne riječi za razdvajanje gumba na obje osi kako želite.

To znači da ne želite iznova otkrivati ​​kotačić za svaki gumb kao što ste to činili u prethodnom kodu. To usporava vrijeme izvršenja, a otežava čitanje i sužavanje koda.

Ali možeš koristite for petlju kako bi se izbjeglo ovo ponavljanje.

Dakle, evo kraće i bolje verzije gornjeg koda:

pritiskanje gumba def (r):
r = 6 * r
Oznaka (t, text = r, font = (60)). Mreža (redak = 5, stupac = 2)
t = Tk ()
a = [1, 4, 6, 7]
jer ja u:
j = lambda y = i: pritiskanje gumba (y)
Gumb (t, tekst = i, bg = "crno", fg = "bijelo", širina = 10, visina = 2,
naredba = j) .reška (redak = i, stupac = 1, pady = 6)
t.mainloop ()

Gumbi izbornika i gumbi za provjeru

Dalje istražimo moć za petlja za dodavanje gumba izbornika na vaš GUI:

iz tkinter uvoza *
t = Tk ()
gumbi = ["Datoteke", "Nadzorna ploča", "Izbornik", "Postavke", "Pomoć"]
m = 0
za i u dometu (len (gumbi)):
# Dohvatite svaki tekst u polju gumba pomoću indeksa popisa kako se m povećava.
# Tada neka se stupac poveća za 1 kroz duljinu niza:

Izbornik (t, tekst = gumbi [m], bg = "plavi", fg = "bijeli"). Mreža (redak = 5, stupac = i)
m + = 1
t.mainloop ()

Dodavanje gumba za provjeru na svoj GUI je također vrlo jednostavno:

t = Tk ()
Kvačica (t, text = "Odaberi opciju"). Grid ()
t.mainloop ()

Slobodno pomnožite taj gumb za potvrdu pomoću za petlja, kao što smo to učinili ranije.

The Jelovnik widget vam omogućuje da dizajnirate padajuće izbornike na koje možete kliknuti tkinter.

Kao što je ranije rečeno, tkinter nudi mnoge mogućnosti widgeta. A neke od njih upotrijebit ćete tijekom dizajniranja padajućeg izbornika.

Evo nekoliko uobičajenih opcija widgeta na koje ćete naići tijekom padajućeg menija:

  • add_cascade: Prikazuje oznaku izbornika i lijepi je tamo gdje joj je mjesto.
  • add_separator: Razgraničava podizbornike i grupira ih u gornji i donji podizbornik.
  • dodaj_naredbu: Ovdje dajete ime svom podizborniku. U konačnici, prihvaća argument naredbe u kojem možete odrediti obrađivač događaja.

Evo primjera padajućeg izbornika koji koristi ove tri mogućnosti:

iz tkinter uvoza *
t = Tk ()
fileOptions = ["Novo", "otvoreno", "Spremi", "Spremi kao"]
fileOptionsAfterseparator = ["Uvoz", "Izvoz", "Izlaz"]
viewOptions = ["Transform", "Edit", "Create"]
menuBar = Izbornik (t)
datoteka = Izbornik (menuBar, tearoff = 0)
za i u fileOptions:
file.add_command (label = i, command = None)
file.add_separator ()
za i u datoteciOptionsAfterseparator:
file.add_command (label = i, command = None)
menuBar.add_cascade (label = "File", menu = file)
Prikaz = Izbornik (menuBar, tearoff = 0)
za i in viewOptions:
View.add_command (label = i, command = None)
menuBar.add_cascade (label = "View", menu = View)
t.config (menu = menuBar)
t.mainloop ()

Pogledajte kako to izgleda:

Izbornik Tkinter Options

An Izbornik opcija, za razliku od Jelovnik padajućeg izbornika, prebacuje svoju oznaku na odabranu opciju.

Iako možete odrediti zadanu vrijednost naljepnice za izbornik opcija, ona prema zadanim postavkama nema oznaku.

Povezano: Ideje za projekt Python prikladne za početnike

Evo kako stvoriti izbornik opcija u tkinter:

t = Tk ()
Omenu = StringVar () #set tip varijable opcija
Omenu.set ("MUO") #navedite zadanu vrijednost za ikonu izbornika
OptionMenu (t, Omenu, "MUO", "Amazon", "Tutorial"). Grid ()
t.mainloop ()

Izgradite višekratnu stolnu aplikaciju pomoću Tkintera

Tkinter nudi niz značajki koje vam pomažu u izradi interaktivnih GUI aplikacija za radnu površinu. Iako možda nema mnogo fleksibilnih značajki za uljepšavanje poput nekih drugih Python GUI modula, to je još uvijek zgodan alat koji vrijedi istražiti. I dok primjeri ovdje prikazuju samo neke od osnovnih pojmova, tkinter nudi naprednije značajke koje možete isprobati.

To znači da možete izraditi GUI kalkulator za radnu površinu, izraditi mini uređivač teksta ili čak stvoriti GUI aplikaciju za rad s računalom za upravljanje zalihama. Ako želite raširiti krila i postati glavni GUI za radnu površinu, možete čak provjeriti i druge GUI module Pythona.

E-mail
GUI? Što je grafičko korisničko sučelje?

Koristite li GUI? Šanse su da ih imate jer ih koristite svaki dan.

Pročitajte Dalje

Povezane teme
  • Programiranje
  • Piton
O autoru
Idowu Omisola (Objavljeno 88 članaka)

Idowu je strastven prema bilo čemu pametnom techu i produktivnosti. U slobodno vrijeme igra se s kodiranjem i prebacuje se na šahovsku ploču kad mu je dosadno, ali isto tako voli kad-tad odvojiti se od rutine. Njegova strast da ljudima pokaže put oko moderne tehnologije motivira ga da piše više.

Više od Idowu Omisole

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Kliknite ovdje da biste se pretplatili