Tkinter je orodje za grafični uporabniški vmesnik (GUI), ki bi ga morali preizkusiti, če želite raziskati moč Pythona pri ustvarjanju namiznih aplikacij.

Tu si bomo ogledali osnove modula GUI Tkinter.

Nastavitev Tkinterja

Običajno vam ni treba namestiti tkinter ločeno, če ste namestili novejšo različico Pythona, začenši s Python 3. Knjižnica morda ne bo delovala s starimi različicami Pythona. To je pogosta težava za uporabnike Maca in Linuxa, saj imajo ti operacijski sistemi običajno privzeto starejše različice Pythona.

Na splošno za uporabo tkinter modul, poskrbite, da boste s svojega uradnega računalnika prenesli in namestili najnovejšo združljivo različico Pythona python.org Spletna stran.

Če uporabljate Mac, lahko prenesete tudi najnovejšo različico ActiveTcl, a tkinter prevajalnik iz ActiveState.

Kako uporabljati Tkinter

Tkinter je odvisen od vgrajene opreme TK razred. In vse dogodke znotraj grafičnega uporabniškega vmesnika zaokroži v mainloop. Tako je mainloop ovitek naredi vaš tkinter izvedljivo kodo.

instagram viewer

Za začetek tkinter:

od tkinter import Tk
Tk (). Mainloop ()

Zagon zgornje kode vrti prazno tkinter okvir.

Funkcije prilagajanja Tkinterja pa so v njegovih vgrajenih pripomočkih.

Če želite uporabljati te gradnike, jih lahko uvozite iz tkinter z zamenjavo od tkinter import Tk z:

od uvoza tkinterja *
t = Tk ()
t.mainloop ()

Velikost okna lahko prilagodite tudi z geometrija in nato določite naslov s pomočjo naslov gradnik tkinter:

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

Tkinter vam omogoča pisanje navadnih besedil neposredno v GUI z uporabo Oznaka pripomoček:

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

The mreža() metoda pa je alternativa paket () metoda. Vaše pripomočke prilepi na GUI, tako da so vidni.

Določite lahko tudi pisavo za Oznaka besedilo:

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

Gumbi so nekateri najpogosteje uporabljeni pripomočki v tkinter. In te gumbe, ki jih je mogoče klikniti, lahko dodate v svoj GUI z različnimi vgrajenimi pripomočki za gumbe.

Tukaj je opis, kako dodati glavni gumb v svoj GUI z uporabo Gumb pripomoček:

t = Tk ()
Gumb (t, text = "Klikni", bg = "black", fg = "white"). Grid ()
t.mainloop ()

The bg in fg ključne besede opisujejo barvo ozadja gumba in barvo besedila v njem.

Velikost gumba lahko prilagodite tudi tako, da vključite višina in premer parametri:

t = Tk ()
Gumb (t, text = "Klikni", bg = "black", fg = "white", height = "2", width = "10"). Grid ()
t.mainloop ()

Tukaj je rezultat za to:

Če želite gumb narediti vizualno bolj privlačen, lahko vključite olajšanje in nato prilagodite njeno širino obrobe:

t = Tk ()
Gumb (t, text = "Klikni", bg = "modro", fg = "belo",
višina = 2, širina = 10, relief = RAISED, borderwidth = 6) .grid ()
t.mainloop ()

In to izgleda takole:

Zamenjati Dvignjeno s STANOVANJE da vidim, kako to pride skozi.

Dodate lahko poljubno število gumbov. Vendar bodite previdni, da se izognete prekrivanju vsebine.

Da se izognete prekrivanju, lahko za vsak gumb določite položaj vrstic in stolpcev:

t = Tk ()
Gumb (t, besedilo = 1, bg = "črno", fg = "belo"). Mreža (vrstica = 1, stolpec = 1)
Gumb (t, besedilo = 2, bg = "črno", fg = "belo"). Mreža (vrstica = 2, stolpec = 1)
Gumb (t, besedilo = 3, bg = "črno", fg = "belo"). Mreža (vrstica = 3, stolpec = 1)
Gumb (t, besedilo = 4, bg = "črno", fg = "belo"). Mreža (vrstica = 4, stolpec = 1)
t.mainloop ()

Neobvezno ukaz ključna beseda pa doda dogodke v Gumb pripomoček. V bistvu zasidra neobvezno funkcijo, ki obdeluje določene dogodke, ko kliknete gumb.

Spodnja koda na primer pomnoži vrednost vsakega gumba s 6, ko ga kliknete. Temelji na vnaprej določeni funkciji:

pritisk gumba def (r):
r = 6 * r
Oznaka (t, text = r, font = (60)). Mreža (vrstica = 5, stolpec = 2)
t = Tk ()
Gumb (t, besedilo = 1, bg = "črno", fg = "belo", širina = 10, višina = 2,
ukaz = lambda: pritisk gumba (1)). mreža (vrstica = 1, stolpec = 1, pady = 6)
Gumb (t, besedilo = 2, bg = "črno", fg = "belo", širina = 10,
ukaz = lambda: pritisk gumba (2)). mreža (vrstica = 2, stolpec = 1, pady = 6)
Gumb (t, besedilo = 3, bg = "črno", fg = "belo", širina = 10,
ukaz = lambda: pritisk gumba (3)). mreža (vrstica = 3, stolpec = 1, pady = 6)
Gumb (t, besedilo = 4, bg = "črno", fg = "belo", širina = 10,
command = lambda: buttonpress (4)). mreža (vrstica = 4, stolpec = 1, pady = 6)
t.mainloop ()

V zgornji kodi je pritisk na gumb obravnava množenje. The Gumb widget nato z anonimnim prikazom opozori na upravljavca dogodkov lambda funkcijo.

In če vas skrbi pady ključna beseda, loči vsak gumb po vrstici. Zamenjava tega z padx loči gumbe čez stolpec. Obe ključni besedi lahko hkrati uporabite za ločevanje gumbov na obeh oseh, kot želite.

Kljub temu ne želite znova izumiti kolesa za vsak gumb, kot ste to storili v prejšnji kodi. To upočasni čas izvajanja, poleg tega pa oteži branje in zožitev kode.

Lahko pa uporabite zanko for da bi se izognili tej ponovitvi.

Tu je torej krajša in boljša različica zgornje kode:

pritisk gumba def (r):
r = 6 * r
Oznaka (t, text = r, font = (60)). Mreža (vrstica = 5, stolpec = 2)
t = Tk ()
a = [1, 4, 6, 7]
za i v:
j = lambda y = i: pritisk na gumb (y)
Gumb (t, besedilo = i, bg = "črno", fg = "belo", širina = 10, višina = 2,
command = j) .grid (vrstica = i, stolpec = 1, pady = 6)
t.mainloop ()

Gumbi menija in gumbi za preverjanje

Nadalje raziskujmo moč za zanka za dodajanje gumbov menija v vaš GUI:

od uvoza tkinterja *
t = Tk ()
gumbi = ["Datoteke", "Nadzorna plošča", "Meni", "Nastavitve", "Pomoč"]
m = 0
za i v dosegu (len (gumbi)):
# Vsako besedilo v polju gumbov dobite z indeksom seznama, ko se m povečuje.
# Nato naj stolpec naraste za 1 skozi dolžino polja:

Meniji (t, besedilo = gumbi [m], bg = "modro", fg = "belo"). Mreža (vrstica = 5, stolpec = i)
m + = 1
t.mainloop ()

Dodajanje gumbov za preverjanje v vaš GUI je prav tako enostavno:

t = Tk ()
Gumb za potrditev (t, text = "Izberi možnost"). Grid ()
t.mainloop ()

Ta gumb za potrditev lahko pomnožite s pomočjo za zanko, kot smo že prej.

The Meni widget vam omogoča oblikovanje spustnih menijev, ki jih je mogoče klikniti v tkinter.

Kot že rečeno, tkinter ponuja veliko možnosti gradnikov. In nekatere boste uporabili med oblikovanjem spustnega menija.

Tu je nekaj najpogostejših možnosti gradnikov, na katere boste naleteli med spuščanjem:

  • add_cascade: Prikaže oznako menija in jo prilepi tja, kamor spada.
  • add_separator: Razmejuje podmenije in jih združuje v zgornje in spodnje podmenije.
  • add_command: Tu podate ime podmenija. Končno sprejme ukazni argument, kjer lahko določite obdelovalec dogodkov.

Tu je spustni primer, ki uporablja te tri možnosti:

od uvoza tkinterja *
t = Tk ()
fileOptions = ["Novo", "odprto", "Shrani", "Shrani kot"]
fileOptionsAfterseparator = ["Uvoz", "Izvoz", "Izhod"]
viewOptions = ["Preoblikuj", "Uredi", "Ustvari"]
menuBar = Meni (t)
file = Menu (menuBar, tearoff = 0)
za i v datotekiOption:
file.add_command (label = i, command = None)
file.add_separator ()
za i v datotekiOptionsAfterseparator:
file.add_command (label = i, command = None)
menuBar.add_cascade (label = "File", menu = file)
Pogled = Meni (menuBar, tearoff = 0)
za i in viewOptions:
View.add_command (label = i, command = None)
menuBar.add_cascade (label = "Pogled", meni = Pogled)
t.config (menu = menuBar)
t.mainloop ()

Oglejte si, kako to izgleda:

Meni Tkinter Options

An Meni možnostiza razliko od Meni spustni meni, preklopi svojo oznako na izbrano možnost.

Čeprav lahko za meni z možnostmi določite privzeto vrednost oznake, privzeto nima oznake.

Sorodno: Ideje za projekt Python, primerne za začetnike

Tukaj je opisano, kako ustvarite meni z možnostmi v tkinter:

t = Tk ()
Omenu = StringVar () #set spremenljivko vrste možnosti
Omenu.set ("MUO") # navedite privzeto vrednost ikone menija
OptionMenu (t, Omenu, "MUO", "Amazon", "Tutorial"). Grid ()
t.mainloop ()

Zgradite namizno aplikacijo za večkratno uporabo s Tkinterjem

Tkinter ponuja vrsto funkcij, ki vam pomagajo ustvariti interaktivne namizne aplikacije z grafičnim uporabniškim vmesnikom. Čeprav morda nima veliko prilagodljivih funkcij za polepšanje, kot nekateri drugi moduli GUY Python, je še vedno priročno orodje, ki ga je vredno raziskati. In čeprav primeri tukaj prikazujejo le nekatere osnove konceptov, tkinter ponuja naprednejše funkcije, ki jih lahko preizkusite.

Kljub temu lahko zgradite namizni kalkulator GUI, naredite mini urejevalnik besedil ali celo ustvarite namizno aplikacijo GUI za upravljanje zalog. Če želite razširiti svoja krila in postati glavni namizni grafični uporabniški vmesnik, si lahko ogledate celo druge GUI module Pythona.

E-naslov
GUI? Kaj je grafični uporabniški vmesnik?

Ali uporabljate GUI? Verjetno imate, ker jih uporabljate vsak dan.

Preberite Naprej

Sorodne teme
  • Programiranje
  • Python
O avtorju
Idowu Omisola (88 objavljenih člankov)

Idowu je navdušen nad vsemi pametnimi tehnologijami in produktivnostjo. V prostem času se poigrava s kodiranjem in preklopi na šahovnico, ko mu je dolgčas, a se občasno rad tudi odmakne od rutine. Njegova strast do tega, da ljudem pokaže pot okoli sodobne tehnologije, ga motivira, da piše več.

Več od Idowu Omisola

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, preglede, brezplačne e-knjige in ekskluzivne ponudbe!

Kliknite tukaj, da se naročite