Tkinter je sada nástrojů grafického uživatelského rozhraní (GUI), kterou byste měli vyzkoušet, pokud chcete prozkoumat sílu Pythonu při vytváření desktopových aplikací.

Zde se podíváme na základy modulu Tkinter GUI.

Nastavení Tkinter

Obvykle nemusíte instalovat tkinter samostatně, pokud jste nainstalovali novější verzi Pythonu, počínaje Pythonem 3. Knihovna však nemusí fungovat se starými verzemi Pythonu. To je běžný problém pro uživatele počítačů Mac a Linux, protože tyto operační systémy obvykle přicházejí se staršími verzemi Pythonu ve výchozím nastavení.

Obecně platí, že k použití tkinter Ujistěte se, že si stáhnete a nainstalujete nejnovější kompatibilní verzi Pythonu do svého PC od oficiálního python.org webová stránka.

Pokud používáte Mac, můžete si také stáhnout nejnovější verzi ActiveTcl, a tkinter překladač z ActiveState.

Jak používat Tkinter

Tkinter závisí na jeho vestavěném TK třída. A zabalí všechny události v grafickém uživatelském rozhraní do a hlavní smyčka. To znamená, že hlavní smyčka obal dělá vaše tkinter spustitelný kód.

instagram viewer

Chcete-li začít s tkinter:

z tkinter importu Tk
Tk (). Mainloop ()

Spuštění výše uvedeného kódu roztočí prázdný tkinter rám.

Funkce přizpůsobení Tkinteru jsou však v jeho integrovaných widgetech.

Chcete-li tyto widgety používat, můžete je importovat z tkinter nahrazením z tkinter importu Tk s:

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

Můžete také upravit velikost okna pomocí geometrie funkce a poté zadejte název pomocí titul widget z tkinter:

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

Tkinter vám umožňuje psát prosté texty přímo do grafického uživatelského rozhraní pomocí Označení widget:

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

The mřížka() metoda je však alternativou k balíček() metoda. Přilepí vaše widgety na GUI a zviditelní je.

Můžete také určit písmo pro vaše Označení text:

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

Tlačítka jsou některé z nejpoužívanějších widgetů v tkinter. A tato klikatelná tlačítka můžete přidat do svého grafického uživatelského rozhraní pomocí různých widgetů integrovaných tlačítek.

Tady je postup, jak přidat primární tlačítko do vašeho GUI pomocí Knoflík widget:

t = Tk ()
Tlačítko (t, text = "Clickable", bg = "black", fg = "white"). Grid ()
t.mainloop ()

The bg a fg klíčová slova popisují barvu pozadí tlačítka a barvu textu v něm.

Rozměr tlačítka můžete také upravit zahrnutím výška a šířka parametry:

t = Tk ()
Tlačítko (t, text = "Clickable", bg = "black", fg = "white", height = "2", width = "10"). Grid ()
t.mainloop ()

Zde je výstup:

A pokud chcete, aby bylo tlačítko vizuálně přitažlivější, můžete zahrnout a úleva klíčové slovo a poté upravte jeho šířku ohraničení:

t = Tk ()
Tlačítko (t, text = "Clickable", bg = "blue", fg = "white",
výška = 2, šířka = 10, reliéf = ZVÝŠENO, šířka okraje = 6) .grid ()
t.mainloop ()

A vypadá to takto:

Nahradit ZVÝŠENO s BYT abychom viděli, jak k tomu dojde.

Můžete přidat libovolný počet tlačítek. Dávejte však pozor, abyste zabránili překrývání obsahu.

Abyste se vyhnuli překrývání, můžete určit pozici řádku a sloupce pro každé tlačítko:

t = Tk ()
Tlačítko (t, text = 1, bg = "černý", fg = "bílý"). Mřížka (řádek = 1, sloupec = 1)
Tlačítko (t, text = 2, bg = "černý", fg = "bílý"). Mřížka (řádek = 2, sloupec = 1)
Tlačítko (t, text = 3, bg = "černý", fg = "bílý"). Mřížka (řádek = 3, sloupec = 1)
Tlačítko (t, text = 4, bg = "černý", fg = "bílý"). Mřížka (řádek = 4, sloupec = 1)
t.mainloop ()

Volitelné příkaz klíčové slovo však přidá události do Knoflík widget. V podstatě zakotví volitelnou funkci, která zpracovává určité události po kliknutí na tlačítko.

Níže uvedený kód například po kliknutí vynásobí hodnotu každého tlačítka o 6. A je založen na předdefinované funkci:

def stisknutí tlačítka (r):
r = 6 * r
Štítek (t, text = r, font = (60)). Mřížka (řádek = 5, sloupec = 2)
t = Tk ()
Tlačítko (t, text = 1, bg = "černá", fg = "bílá", šířka = 10, výška = 2,
příkaz = lambda: stisknutí tlačítka (1)). grid (řádek = 1, sloupec = 1, pady = 6)
Tlačítko (t, text = 2, bg = "černá", fg = "bílá", šířka = 10,
příkaz = lambda: stisknutí tlačítka (2)). grid (řádek = 2, sloupec = 1, pady = 6)
Tlačítko (t, text = 3, bg = "černá", fg = "bílá", šířka = 10,
příkaz = lambda: stisknutí tlačítka (3)). grid (řádek = 3, sloupec = 1, pady = 6)
Tlačítko (t, text = 4, bg = "černý", fg = "bílý", šířka = 10,
příkaz = lambda: stisknutí tlačítka (4)). grid (řádek = 4, sloupec = 1, pady = 6)
t.mainloop ()

Ve výše uvedeném kódu stisknutí tlačítka zpracovává událost násobení. The Knoflík widget pak ukazuje na obsluhu události pomocí anonymního lambda funkce.

A pokud se obáváte pady klíčové slovo, zřetelně odděluje každé tlačítko v řádku. Nahrazuje to padx odděluje tlačítka přes sloupec. A obě klíčová slova můžete použít současně k oddělení tlačítek napříč oběmi osami, jak si přejete.

To znamená, že nechcete znovu objevit kolečko pro každé tlačítko, jako tomu bylo v předchozím kódu. To zpomaluje čas provádění a navíc ztěžuje čtení a zúžení kódu.

Ale můžete použijte smyčku for vyhnout se tomuto opakování.

Tady je kratší a lepší verze výše uvedeného kódu:

def stisknutí tlačítka (r):
r = 6 * r
Štítek (t, text = r, font = (60)). Mřížka (řádek = 5, sloupec = 2)
t = Tk ()
a = [1, 4, 6, 7]
pro i v:
j = lambda y = i: stisknutí tlačítka (y)
Tlačítko (t, text = i, bg = "černá", fg = "bílá", šířka = 10, výška = 2,
příkaz = j) .grid (řádek = i, sloupec = 1, pady = 6)
t.mainloop ()

Tlačítka nabídky a zaškrtávací tlačítka

Pojďme dále prozkoumat sílu pro smyčka pro přidání tlačítek nabídky do vašeho GUI:

z importu tkinter *
t = Tk ()
buttons = ["Soubory", "Dashboard", "Menu", "Nastavení", "Nápověda"]
m = 0
pro i v dosahu (len (tlačítka)):
# Získejte každý text v poli tlačítek pomocí indexu seznamu, jak se m zvyšuje.
# Pak nechte sloupec zvětšit o 1 po celé délce pole:

Tlačítko Menu (t, text = tlačítka [m], bg = "modrá", fg = "bílá"). Mřížka (řádek = 5, sloupec = i)
m + = 1
t.mainloop ()

Přidání zaškrtávacích tlačítek do grafického uživatelského rozhraní je také celkem snadné:

t = Tk ()
Zaškrtávací tlačítko (t, text = "Vyberte možnost"). Grid ()
t.mainloop ()

Nebojte se toto kontrolní tlačítko znásobit pomocí pro smyčka, jak jsme to udělali dříve.

The Jídelní lístek Widget vám umožní navrhnout rozbalovací nabídky, na které lze kliknout tkinter.

Jak již bylo uvedeno výše, tkinter nabízí mnoho možností widgetů. Některé z nich použijete při navrhování rozbalovací nabídky.

Zde je několik běžných možností widgetů, na které narazíte při rozbalování:

  • add_cascade: Zobrazí štítek nabídky a nalepí jej tam, kam patří.
  • add_separator: Vymezuje podnabídky a seskupuje je do horních a dolních podnabídek.
  • add_command: Zde pojmenujete svou podnabídku. Nakonec přijímá argument příkazu, kde můžete určit obslužnou rutinu události.

Tady je rozevírací příklad, který využívá tyto tři možnosti:

z importu tkinter *
t = Tk ()
fileOptions = ["Nové", "otevřít", "Uložit", "Uložit jako"]
fileOptionsAfterseparator = ["Import", "Export", "Konec"]
viewOptions = ["Transformovat", "Upravit", "Vytvořit"]
menuBar = Menu (t)
file = Menu (menuBar, tearoff = 0)
pro i v fileOptions:
file.add_command (label = i, command = None)
file.add_separator ()
pro i v fileOptionsAfterseparator:
file.add_command (label = i, command = None)
menuBar.add_cascade (label = "Soubor", menu = soubor)
Zobrazit = Menu (menuBar, Tearoff = 0)
pro i in viewOptions:
View.add_command (label = i, command = None)
menuBar.add_cascade (label = "Zobrazit", menu = Zobrazit)
t.config (menu = menuBar)
t.mainloop ()

Podívejte se, jak to vypadá:

Nabídka Možnosti Tkinter

An Nabídka možností, na rozdíl od Jídelní lístek rozevírací seznam, přepne jeho štítek na vybranou možnost.

I když můžete určit výchozí hodnotu popisku pro nabídku možností, ve výchozím nastavení nemá žádný popisek.

Příbuzný: Python Project Ideas vhodné pro začátečníky

Tady je postup, jak vytvořit nabídku možností v tkinter:

t = Tk ()
Omenu = StringVar () #set typ proměnné možností
Omenu.set ("MUO") # uveďte výchozí hodnotu pro ikonu nabídky
OptionMenu (t, Omenu, "MUO", "Amazon", "Výukový program"). Grid ()
t.mainloop ()

Vytvořte si opakovaně použitelnou desktopovou aplikaci s Tkinterem

Tkinter nabízí řadu funkcí, které vám pomohou vytvářet interaktivní desktopové aplikace GUI. Ačkoli nemusí mít mnoho flexibilních zkrášlovacích funkcí jako některé jiné moduly GUI v Pythonu, je to stále užitečný nástroj, který stojí za prozkoumání. A zatímco příklady zde ukazují pouze některé základní pojmy, tkinter nabízí pokročilejší funkce, které si můžete vyzkoušet.

To znamená, že můžete vytvořit stolní kalkulačku grafického uživatelského rozhraní, vytvořit mini textový editor nebo dokonce vytvořit desktopovou aplikaci grafického uživatelského rozhraní pro správu inventáře. Pokud chcete rozšířit svá křídla a stát se hlavním desktopovým grafickým uživatelským rozhraním, můžete si dokonce prohlédnout další grafické moduly Pythonu.

E-mailem
GUI? Co je grafické uživatelské rozhraní?

Používáte GUI? Je velká šance, že je používáte každý den.

Přečtěte si další

Související témata
  • Programování
  • Krajta
O autorovi
Idowu Omisola (Publikováno 88 článků)

Idowu je vášnivý pro cokoli inteligentního a produktivního. Ve svém volném čase si hraje s kódováním a když se nudí, přepne se na šachovnici, ale také rád občas vybočuje z rutiny. Jeho vášeň ukázat lidem cestu kolem moderních technologií ho motivuje k dalšímu psaní.

Více od Idowu Omisola

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!

Kliknutím sem se přihlásíte k odběru