Tkinter on graafilise kasutajaliidese (GUI) tööriistakomplekt, mida peaksite proovima, kui soovite uurida Pythoni jõudu töölauarakenduste loomisel.

Siin heidame pilgu Tkinter GUI mooduli põhitõdedele.

Tkinteri seadistamine

Tavaliselt pole teil vaja installida tkinter eraldi, kui olete installinud Pythoni uuema versiooni, alustades Python 3-st. Raamatukogu ei pruugi siiski töötada vanade Pythoni versioonidega. See on Maci ja Linuxi kasutajate jaoks tavaline probleem, kuna nende operatsioonisüsteemidega on tavaliselt vaikimisi Pythoni vanemad versioonid.

Üldiselt kasutada tkinter moodul, veenduge, et laadite ametnikult alla ja installite oma arvutisse uusima ühilduva Pythoni versiooni python.org veebisaidil.

Kui kasutate Maci, võite alternatiivina alla laadida ka ActiveTcl uusima versiooni a tkinter koostaja ActiveState.

Kuidas kasutada Tkinterit

Tkinter sõltub selle sisseehitatud TK klass. Ja see koondab kõik graafilise kasutajaliidese sündmused a mainloop. Seega mainloop ümbris teeb teie tkinter koodi käivitatav.

instagram viewer

Alustuseks tkinter:

alates tkinter import Tk
Tk (). Mainloop ()

Ülaltoodud koodi käivitamine tühjeneb tkinter raam.

Tkinteri kohandamisfunktsioonid on aga selle sisseehitatud vidinates.

Nende vidinate kasutamiseks saate need importida tkinter asendades alates tkinter import Tk koos:

tkinteri impordist *
t = Tk ()
t.mainloop ()

Akna suurust saate reguleerida ka nupuga geomeetria funktsioon ja seejärel määrake pealkiri, kasutades pealkiri vidin tkinter:

t = Tk ()
t.geomeetria ("600x600")
t.title ("Tk juhendaja")
t.mainloop ()

Tkinter võimaldab kirjutada tavalisi tekste otse GUI-le, kasutades Silt vidin:

t = Tk ()
Silt (t, text = "MUO Tkinteri õpetus"). Ruudustik ()
t.mainloop ()

The ruudustik () meetod on aga alternatiiv meetodile pakk () meetod. See kleebib teie vidinad graafilise kasutajaliidese külge, muutes need nähtavaks.

Samuti saate määrata oma fondi Silt tekst:

t = Tk ()
Silt (t, text = "MUO Tkinteri õpetus", font = (60)). Ruudustik ()
t.mainloop ()

Nupud on ühed kõige enam kasutatavad vidinad aastal tkinter. Ja saate need klõpsatavad nupud lisada oma GUI-le, kasutades erinevaid sisseehitatud nupuvidinaid.

Siit saate teada, kuidas oma GUI-le esmane nupp lisada Nupp vidin:

t = Tk ()
Nupp (t, text = "Klõpsatav", bg = "must", fg = "valge"). Ruudustik ()
t.mainloop ()

The bg ja fg märksõnad kirjeldavad vastavalt nupu taustavärvi ja selles oleva teksti värvi.

Nupu mõõtmeid saate reguleerida ka, lisades nupu kõrgus ja laius parameetrid:

t = Tk ()
Nupp (t, text = "Klõpsatav", bg = "must", fg = "valge", kõrgus = "2", laius = "10"). Ruudustik ()
t.mainloop ()

Selle väljund on järgmine:

Ja kui soovite nuppu visuaalselt atraktiivsemaks muuta, võite lisada a kergendust märksõna ja seejärel reguleerige selle äärise laiust:

t = Tk ()
Nupp (t, text = "Klõpsatav", bg = "sinine", fg = "valge",
kõrgus = 2, laius = 10, reljeef = TÕSTETUD, piiri laius = 6). ruudustik ()
t.mainloop ()

Ja see näeb välja selline:

Asenda TÕSTETUD koos Korter et näha, kuidas see läbi tuleb.

Saate lisada nii palju nuppe kui soovite. Kuid olge ettevaatlik, et vältida sisu kattumist.

Kattumise vältimiseks saate iga nupu jaoks määrata rea ​​ja veeru asukoha:

t = Tk ()
Nupp (t, tekst = 1, bg = "must", fg = "valge"). Ruudustik (rida = 1, veerg = 1)
Nupp (t, tekst = 2, bg = "must", fg = "valge"). Ruudustik (rida = 2, veerg = 1)
Nupp (t, tekst = 3, bg = "must", fg = "valge"). Ruudustik (rida = 3, veerg = 1)
Nupp (t, tekst = 4, bg = "must", fg = "valge"). Ruudustik (rida = 4, veerg = 1)
t.mainloop ()

Valikuline käsk märksõna aga lisab sündmustele Nupp vidin. Sisuliselt ankurdab see valikulise funktsiooni, mis haldab teatud sündmusi, kui klõpsate nuppu.

Näiteks allpool olev kood korrutab iga nupu väärtuse 6-ga, kui sellel klõpsate. Ja see põhineb eelnevalt määratletud funktsioonil:

def nupuvajutus (r):
r = 6 * r
Silt (t, text = r, font = (60)). Ruudustik (rida = 5, veerg = 2)
t = Tk ()
Nupp (t, tekst = 1, bg = "must", fg = "valge", laius = 10, kõrgus = 2,
käsk = lambda: nupuvajutus (1)). ruudustik (rida = 1, veerg = 1, pady = 6)
Nupp (t, tekst = 2, bg = "must", fg = "valge", laius = 10,
käsk = lambda: nupuvajutus (2)). ruudustik (rida = 2, veerg = 1, pady = 6)
Nupp (t, tekst = 3, bg = "must", fg = "valge", laius = 10,
käsk = lambda: nupuvajutus (3)). ruudustik (rida = 3, veerg = 1, pady = 6)
Nupp (t, tekst = 4, bg = "must", fg = "valge", laius = 10,
käsk = lambda: nupuvajutus (4)). ruudustik (rida = 4, veerg = 1, pady = 6)
t.mainloop ()

Ülaltoodud koodis nupuvajutus tegeleb korrutussündmusega. The Nupp vidin osutab seejärel anonüümselt sellele sündmuste käitlejale lambda funktsioon.

Ja kui olete mures selle pärast padi märksõna, eraldab see reas selgelt kõik nupud. Asendades selle padx eraldab veeru nupud. Ja võite mõlemat märksõna korraga kasutada, et eraldada nupud mõlema telje vahel, kui soovite.

See tähendab, et te ei soovi iga nupu jaoks ratast uuesti leiutada, nagu eelmises koodis. See aeglustab täitmisaega, lisaks muudab see teie koodi raskesti loetavaks ja kitsamaks.

Aga saate kasutage silmuse jaoks a selle kordamise vältimiseks.

Nii et siin on ülaltoodud koodi lühem ja parem versioon:

def nupuvajutus (r):
r = 6 * r
Silt (t, text = r, font = (60)). Ruudustik (rida = 5, veerg = 2)
t = Tk ()
a = [1, 4, 6, 7]
i jaoks:
j = lambda y = i: nupuvajutus (y)
Nupp (t, tekst = i, bg = "must", fg = "valge", laius = 10, kõrgus = 2,
käsk = j) .ruudustik (rida = i, veerg = 1, pady = 6)
t.mainloop ()

Menüünupud ja kontrollnupud

Uurime edasi selle jõudu eest loop, et lisada GUI-le menüünupud:

tkinteri impordist *
t = Tk ()
nupud = ["Failid", "Armatuurlaud", "Menüü", "Seaded", "Abi"]
m = 0
i jaoks vahemikus (len (nupud)):
# Hankige iga nuppude massiivi tekst loendiindeksi abil, kui m suureneb.
# Seejärel laske veerul massiivi pikkusega 1 võrra suureneda:

Menüünupp (t, tekst = nupud [m], bg = "sinine", fg = "valge"). Ruudustik (rida = 5, veerg = i)
m + = 1
t.mainloop ()

Kontrollnuppude lisamine GUI-le on samuti üsna lihtne:

t = Tk ()
Kontrollnupp (t, text = "Vali valik"). Ruudustik ()
t.mainloop ()

Korrutage see kontrollnupp julgelt nupuga eest silmus, nagu me varem tegime.

The Menüü vidin võimaldab teil kujundada klõpsatavad rippmenüüd tkinter.

Nagu varem öeldud, tkinter pakub palju vidina võimalusi. Ja mõnda neist kasutate rippmenüü kujundamisel.

Siin on mõned levinumad vidinate valikud, millega rippmenüüd tehes kokku puutute:

  • add_cascade: See kuvab menüü sildi ja kleebib selle sinna, kuhu see kuulub.
  • add_separator: See piiritleb alammenüüd ja rühmitab need ülemisteks ja alumisteks alammenüüdeks.
  • add_command: Siin panete oma alammenüüle nime. Lõppkokkuvõttes aktsepteerib see käsuargumenti, kus saate määrata sündmuste käitleja.

Siin on rippmenüü näide, mis kasutab neid kolme võimalust.

tkinteri impordist *
t = Tk ()
fileOptions = ["Uus", "avatud", "Salvesta", "Salvesta nimega"]
fileOptionsAfterseparator = ["Import", "Eksport", "Välju"]
viewOptions = ["Teisenda", "Muuda", "Loo"]
menuBar = Menüü (t)
file = Menüü (menüüriba, rebimine = 0)
i jaoks failis Valikud:
file.add_command (silt = i, käsk = Puudub)
file.add_separator ()
i jaoks failis FileOptionsAfterseparator:
file.add_command (silt = i, käsk = Puudub)
menuBar.add_cascade (silt = "Fail", menüü = fail)
Vaade = Menüü (menüüriba, rebimine = 0)
i jaoks vaatesValikud:
View.add_command (silt = i, käsk = Puudub)
menuBar.add_cascade (silt = "Vaade", menüü = Vaade)
t.config (menüü = menüüriba)
t.mainloop ()

Vaadake, kuidas see välja näeb:

Tkinteri menüü Valikud

An Valikute menüü, erinevalt Menüü rippmenüü, lülitab selle sildi valitud suvandile.

Kuigi saate suvandimenüüle määrata sildi vaikeväärtuse, pole sellel vaikimisi silti.

Seotud: Pythoni projektiideed, mis sobivad algajatele

Siit saate teada, kuidas luua suvandimenüüd tkinter:

t = Tk ()
Omenu = StringVar () # määrake valikute muutuja tüüp
Omenu.set ("MUO") # määrake menüüikooni vaikeväärtus
OptionMenu (t, Omenu, "MUO", "Amazon", "Tutorial"). Ruudustik ()
t.mainloop ()

Ehitage Tkinteriga korduvkasutatav töölauarakendus

Tkinter pakub tervet rida funktsioone, mis aitavad teil luua interaktiivseid GUI töölauarakendusi. Kuigi sellel ei pruugi olla palju paindlikke kaunistavaid funktsioone, nagu mõnel teisel Pythoni GUI moodulil, on see siiski käepärane tööriist, mida tasub uurida. Ja kui siinsed näited näitavad ainult mõningaid põhitõdesid, tkinter pakub täpsemaid funktsioone, mida saate proovida.

See tähendab, et saate oma varude haldamiseks luua GUI töölaua kalkulaatori, teha mini tekstiredaktori või isegi luua GUI töölauarakenduse. Kui soovite oma tiivad laiali ajada ja saada töölaua GUI majoriks, võite isegi vaadata Pythoni teisi GUI mooduleid.

E-post
GUI? Mis on graafiline kasutajaliides?

Kas kasutate GUI-d? Võimalik, et teil on, sest kasutate neid iga päev.

Loe edasi

Seotud teemad
  • Programmeerimine
  • Python
Autori kohta
Idowu Omisola (88 artiklit avaldatud)

Idowu on kirglik kõigest nutikast tehnoloogiast ja tootlikkusest. Vabal ajal mängib ta kodeerimisega ringi ja lülitub igavuse korral malelauale, kuid armastab ka rutiinist lahti murda. Kirg, et näidata inimestele moodsate tehnikateed, motiveerib teda rohkem kirjutama.

Veel Idowu Omisolalt

Telli meie uudiskiri

Liituge meie uudiskirjaga, kus leiate tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin