Tkinter je sada nástrojov grafického používateľského rozhrania (GUI), ktorú by ste si mali vyskúšať, ak chcete preskúmať silu Pythonu pri vytváraní aplikácií pre počítače.

Tu sa pozrieme na základy modulu Tkinter GUI.

Tkinter Setup

Spravidla nie je potrebné inštalovať tkinter osobitne, ak ste si nainštalovali novšiu verziu Pythonu, počnúc Pythonom 3. Knižnica však nemusí fungovať so starými verziami Pythonu. Toto je bežný problém používateľov počítačov Mac a Linux, pretože tieto operačné systémy sa štandardne štandardne dodávajú so staršími verziami Pythonu.

Spravidla sa používa tkinter modulu, nezabudnite si stiahnuť a nainštalovať najnovšiu kompatibilnú verziu Pythonu do svojho počítača od oficiálneho python.org webovú stránku.

Ak používate počítač Mac, môžete si stiahnuť najnovšiu verziu aplikácie ActiveTcl, a tkinter zostavovateľ z ActiveState.

Ako používať Tkinter

Tkinter závisí od jeho zabudovaného TK trieda. A zhromažďuje všetky udalosti v rámci GUI do a mainloop. Teda mainloop zavinovačka robí vaše tkinter spustiteľný kód.

instagram viewer

Ak chcete začať s tkinter:

z tkinter import Tk
Tk (). Mainloop ()

Spustenie vyššie uvedeného kódu roztočí prázdne miesto tkinter rám.

Funkcie prispôsobenia Tkinteru sú však v jeho zabudovaných widgetoch.

Ak chcete tieto widgety používať, môžete ich importovať z tkinter nahradením z tkinter import Tk s:

z importu tkinter *
t = Tk ()
t.mainloop ()

Môžete tiež upraviť veľkosť okna pomocou geometria funkcie a potom zadajte názov pomocou titul miniaplikácia tkinter:

t = Tk ()
t.geometry („600 x 600“)
t.title („Tk Tutorial“)
t.mainloop ()

Tkinter vám umožňuje písať obyčajné texty priamo do GUI pomocou Štítok miniaplikácia:

t = Tk ()
Štítok (t, text = "Výukový program MUO Tkinter"). Grid ()
t.mainloop ()

The mriežka () metóda je však alternatívou k balenie() metóda. Prilepí vaše widgety k GUI a zviditeľní ich.

Môžete tiež určiť písmo pre svoj súbor Štítok text:

t = Tk ()
Štítok (t, text = "Výukový program MUO Tkinter", font = (60)). Grid ()
t.mainloop ()

Tlačidlá sú niektoré z najbežnejších widgetov v aplikácii tkinter. Tieto klikateľné tlačidlá môžete pridať do svojho grafického používateľského rozhrania pomocou rôznych widgetov integrovaných tlačidiel.

Tu je príklad, ako pridať primárne tlačidlo do vášho GUI pomocou Tlačidlo miniaplikácia:

t = Tk ()
Tlačidlo (t, text = "Kliknuteľné", bg = "čierne", fg = "biele"). Mriežka ()
t.mainloop ()

The bg a fg kľúčové slová popisujú farbu pozadia tlačidla a farbu textu v ňom.

Rozmer tlačidla môžete upraviť aj vložením výška a šírka parametre:

t = Tk ()
Tlačidlo (t, text = "Kliknuteľné", bg = "čierne", fg = "biele", výška = "2", šírka = "10"). Mriežka ()
t.mainloop ()

Tu je výstup:

A ak chcete, aby bolo tlačidlo vizuálne príťažlivejšie, môžete zahrnúť a úľava kľúčové slovo a potom upravte jeho šírku okraja:

t = Tk ()
Tlačidlo (t, text = "klikateľné", bg = "modré", fg = "biele",
výška = 2, šírka = 10, reliéf = ZVÝŠENÝ, šírka okraja = 6) .grid ()
t.mainloop ()

A vyzerá to takto:

Vymeniť ZVÝŠENÉ s PLOCHÝ aby sme videli, ako k tomu dôjde.

Môžete pridať ľubovoľné množstvo tlačidiel. Buďte však opatrní, aby ste zabránili prekrývaniu obsahu.

Aby ste sa vyhli prekrývaniu, môžete pre každé tlačidlo určiť pozíciu riadku a stĺpca:

t = Tk ()
Tlačidlo (t, text = 1, bg = "čierna", fg = "biela"). Mriežka (riadok = 1, stĺpec = 1)
Tlačidlo (t, text = 2, bg = "čierna", fg = "biela"). Mriežka (riadok = 2, stĺpec = 1)
Tlačidlo (t, text = 3, bg = "čierna", fg = "biela"). Mriežka (riadok = 3, stĺpec = 1)
Tlačidlo (t, text = 4, bg = "čierna", fg = "biela"). Mriežka (riadok = 4, stĺpec = 1)
t.mainloop ()

Voliteľné príkaz kľúčové slovo však pridáva udalosti do súboru Tlačidlo widget. V podstate zakotvuje voliteľnú funkciu, ktorá zvláda určité udalosti po kliknutí na tlačidlo.

Nižšie uvedený kód napríklad po kliknutí zvýši hodnotu každého tlačidla o 6. A je založený na preddefinovanej funkcii:

def buttonpress (r):
r = 6 * r
Štítok (t, text = r, písmo = (60)). Mriežka (riadok = 5, stĺpec = 2)
t = Tk ()
Tlačidlo (t, text = 1, bg = "čierna", fg = "biela", šírka = 10, výška = 2,
príkaz = lambda: stlačenie tlačidla (1)). mriežka (riadok = 1, stĺpec = 1, pady = 6)
Tlačidlo (t, text = 2, bg = "čierna", fg = "biela", šírka = 10,
príkaz = lambda: stlačenie tlačidla (2)). mriežka (riadok = 2, stĺpec = 1, pady = 6)
Tlačidlo (t, text = 3, bg = "čierna", fg = "biela", šírka = 10,
príkaz = lambda: stlačenie tlačidla (3)). mriežka (riadok = 3, stĺpec = 1, pady = 6)
Tlačidlo (t, text = 4, bg = "čierna", fg = "biela", šírka = 10,
príkaz = lambda: stlačenie tlačidla (4)). mriežka (riadok = 4, stĺpec = 1, pady = 6)
t.mainloop ()

Vo vyššie uvedenom kóde stlačenie gombíka spracováva udalosť násobenia. The Tlačidlo widget potom ukazuje na obsluhu udalosti pomocou anonymného lambda funkcie.

A ak sa obávate o pady kľúčové slovo, zreteľne oddeľuje každé tlačidlo v riadku. Výmena za padx oddeľuje tlačidlá v stĺpci. Môžete tiež použiť obe kľúčové slová súčasne na oddelenie tlačidiel pozdĺž oboch osí podľa vášho želania.

To znamená, že nechcete znovu objavovať koliesko pre každé tlačidlo, ako to bolo v predchádzajúcom kóde. To spomaľuje čas vykonávania a sťažuje čítanie a zúženie kódu.

Ale ty možeš použite slučku for vyhnúť sa tomuto opakovaniu.

Tu je teda kratšia a lepšia verzia vyššie uvedeného kódu:

def buttonpress (r):
r = 6 * r
Štítok (t, text = r, písmo = (60)). Mriežka (riadok = 5, stĺpec = 2)
t = Tk ()
a = [1, 4, 6, 7]
pre i v:
j = lambda y = i: stlačenie tlačidla (y)
Tlačidlo (t, text = i, bg = "čierna", fg = "biela", šírka = 10, výška = 2,
príkaz = j) .grid (riadok = i, stĺpec = 1, pady = 6)
t.mainloop ()

Tlačidlá ponuky a začiarkavacie tlačidlá

Poďme ďalej preskúmať silu pre slučka na pridanie tlačidiel ponuky do vášho GUI:

z importu tkinter *
t = Tk ()
buttons = ["Súbory", "Dashboard", "Menu", "Nastavenia", "Pomocník"]
m = 0
pre i v rozsahu (len (tlačidlá)):
# Získajte každý text v poli tlačidiel pomocou indexu zoznamu, keď sa zvyšuje m.
# Potom nechajte stĺpec zväčšiť o 1 po celej dĺžke poľa:

Menu (t, text = tlačidlá [m], bg = "modré", fg = "biele"). Mriežka (riadok = 5, stĺpec = i)
m + = 1
t.mainloop ()

Pridanie začiarkavacích tlačidiel do grafického používateľského rozhrania je tiež celkom jednoduché:

t = Tk ()
Začiarkavacie tlačidlo (t, text = "Vyberte možnosť"). Grid ()
t.mainloop ()

Toto kontrolné tlačidlo môžete pokojne znásobiť pomocou pre slučka, ako sme to urobili predtým.

The Ponuka Widget vám umožňuje navrhnúť klikateľné rozbaľovacie ponuky v systéme Windows tkinter.

Ako už bolo uvedené, tkinter ponúka veľa možností miniaplikácií. Niektoré z nich použijete pri navrhovaní rozbaľovacej ponuky.

Tu je niekoľko bežných možností miniaplikácií, na ktoré narazíte pri rozbaľovaní:

  • add_cascade: Zobrazí štítok ponuky a prilepí ho tam, kam patrí.
  • add_separator: Vymedzuje podmenu a zoskupuje ich do horných a dolných podmenu.
  • add_command: Tu pomenujete svoju podponuku. Nakoniec prijme argument príkazu, kde môžete určiť obslužnú rutinu udalosti.

Tu je príklad rozbaľovacej ponuky, ktorá využíva tieto tri možnosti:

z importu tkinter *
t = Tk ()
fileOptions = ["Nové", "otvorené", "Uložiť", "Uložiť ako"]
fileOptionsAfterseparator = ["Import", "Export", "Ukončiť"]
viewOptions = ["Transformovať", "Upraviť", "Vytvoriť"]
menuBar = Menu (t)
file = Menu (menuBar, tearoff = 0)
pre i v fileOptions:
file.add_command (label = i, command = None)
file.add_separator ()
pre i v fileOptionsAfterseparator:
file.add_command (label = i, command = None)
menuBar.add_cascade (label = "Súbor", menu = súbor)
Zobraziť = Menu (menuBar, výber čaju = 0)
pre i in viewOptions:
View.add_command (label = i, command = None)
menuBar.add_cascade (label = "Zobraziť", menu = Zobraziť)
t.config (menu = menuBar)
t.mainloop ()

Pozrite sa, ako to vyzerá:

Ponuka možností Tkinter

An Ponuka možností, na rozdiel od Ponuka rozbaľovacia ponuka, prepne jeho štítok na vybranú možnosť.

Aj keď pre ponuku možností môžete určiť predvolenú hodnotu štítka, štandardne nemá žiadny štítok.

Súvisiace: Nápady na projekt v Pythone vhodné pre začiatočníkov

Tu je postup, ako vytvoriť ponuku možností v aplikácii tkinter:

t = Tk ()
Omenu = StringVar () #set variabilný typ možností
Omenu.set („MUO“) # uveďte predvolenú hodnotu pre ikonu ponuky
OptionMenu (t, Omenu, „MUO“, „Amazon“, „Tutorial“). Grid ()
t.mainloop ()

Vytvorte si opakovane použiteľnú desktopovú aplikáciu s Tkinterom

Tkinter ponúka množstvo funkcií, ktoré vám pomôžu vytvárať interaktívne desktopové aplikácie GUI. Aj keď nemusí mať veľa flexibilných funkcií na skrášlenie, ako niektoré iné moduly grafického používateľského rozhrania Pythonu, stále je to praktický nástroj, ktorý stojí za preskúmanie. A zatiaľ čo tu uvedené príklady ukazujú iba niektoré základné pojmy, tkinter ponúka pokročilejšie funkcie, ktoré si môžete vyskúšať.

To znamená, že môžete vytvoriť počítačovú kalkulačku grafického používateľského rozhrania, vytvoriť mini textový editor alebo dokonca vytvoriť počítačovú aplikáciu grafického používateľského rozhrania na správu svojich zásob. Ak chcete roztiahnuť krídla a stať sa hlavným počítačovým grafickým rozhraním, môžete si pozrieť aj ďalšie grafické moduly Pythonu.

Email
GUI? Čo je grafické používateľské rozhranie?

Používate grafické rozhranie? Je veľká šanca, že ich využijete každý deň.

Prečítajte si Ďalej

Súvisiace témy
  • Programovanie
  • Python
O autorovi
Idowu Omisola (Publikovaných 88 článkov)

Idowu nadchol pre čokoľvek inteligentné technológie a produktivita. Vo voľnom čase sa hrá s kódovaním a keď sa nudí, prepne na šachovnicu, ale tiež rád občas vybočuje z rutiny. Jeho vášeň pre predvádzanie ľudí v oblasti moderných technológií ho motivuje k tomu, aby písal viac.

Viac od Idowu Omisola

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!

Prihláste sa kliknutím tu