Přeskočit na obsah

Tkinter/Poznámky a přehledy

Z Wikiverzity
Jak používat klasifikační nálepkuTato stránka je součástí projektu:
Příslušnost: Juandev

Toto je doplňkový studijní materiál k pythonovské knihovně Tkinter. V sekci poznámky můžete zanechávat poznámky ke knihovně v rámci svého studia této knihovny, nebo komentovat jednotlivé poznámky, pokud s nimi nesouhlasíte. Příklad:

  • Tkinter je jedinou knihovnou umožňující pracovat s grafickým zobrazením[kom 1]

Komentář vložíte následovně: zapnutý vizuální editor – kurzor na konci řádku – Citace – Ručně – Základní – v Možnostech vybrat "kom" – Vložit

V další části se nachází přehledy, které si komunita sama vytváří. Nic neopisujte, bylo by to porušením autorského práva!

Poznámky

[editovat]
  • vše je Widget, takže se například musí vytvořit kořenový Widget
  • každý Widget se napřed definuje a pak se zobrazuje na obrazovku
  • tkinter nápověda v příkazovém řádku odkazuje pro úplnost na nápovědu na stránkách Python, zde se píše, že má člověk ale kouknout do originální, nápovědy, která ale není k nalezení
  • dobré je importovat i tkinter.ttk přes from tkinter import ttk, který obsahuje moderní vzhled widgetů
  • pozicování prostřednictvím metody .grid() vypadá následovně:
wid1.grid(row=0, column=0)
wid2.grid(row=0, column=7)
    • je ale vždy relativní, tzn, že prvky (wid1, wid2) se nepozicují ve vztahu k okno Tk(), ale ve vztahu k sobě navzájem, tzn. že column 1 bude stejně daleko jako coulumn 7, právě proto, že jsou tam jen dva prvky, které tam vkládám.
  • geometry managery pozicují prvky relativně, tzn. každý ve vztahu k předchozímu
  • takže základní stavebním blokem je widget, který se musí nějak umístit a následně ostylovat
  • tak jak se widgety umístí, tak jsou umístěny i v hlavním okně, pokud je neumístím jinak pomocí metod rozvrtční
  • tak přetrvává podobný problém jako u Pythonu, že nexistuje velká indexová dokumentace. Člověk něco vidí (například metody .stringVar() či .get()), chce si k tomu přečíst víc, a neví kde to hledat

Komentáře

[editovat]
  1. Není to prava. Takových knihoven je mnoho. Výhodou Tkinter je ale široká podpora a to že se o tuto knihovnu stará vývojářský tým Pythonu.

Parametry metod dle widgetu

[editovat]

.configure()

[editovat]

V tabulce níže uvádíme pro přehled kofigurační možnosti a hodnoty metody .configure() pro jednotlivé widgety.

Č. Widget Parametr Hodnoty Vysvětlivky Poznámky
1 Label text řetězec, nebo proměnná
2 image proměnná Obrázek se vloží do proměnné pomocí funkce PhotoImage().
3 compound
  1. none (default)
  2. text
  3. image
  4. center
  5. top, left, bottom, right
Vztahuje se ke konfigurační možnosti image. Jednotlivé hodnoty tedy znamenají:
  1. zobrazí se pouze obrázek, pokud obrázek chybí zobrazí se pouze text
  2. zobrazí se pouze text
  3. zobrazí se pouze obrázek
  4. zobrazí text uprostřed obrázku
  5. zobrazí text nad, nalevo od, pod, napravo od obrázku
4 font Pozor na to, že netradiční fonty, nemusí být přítomny na jiných zařízeních
5 foreground
  1. název barvy
  2. hex
  3. rgb
Mění barvu textu. Je možné zadat slovně, nebo kódem. Všechny dostupné slovní možnosti zde. Nicméně teď zjišťuji, že mě to bere i název, který není v seznamu, například "aqua" (tradiční CSS název).
6 background Mění barvu pozadí textu.
7 relief
8 padding
9 Entry width
10 show řetězec Používá se například pro vyplnění vstupního ple textovým placeholderem po zadání hesla.
11 state
Menu

.insert()

[editovat]
Č. Widget Parametr Hodnoty Kód Vysvětlivky
1 Combobox index
2 text (řetězec obalený uvozovkami)
3 Entry index (integer) .insert(index = 0, text = "00420") Parametry mohou být zapsány buď pojmenovaně, tedy insert(index = 0, text = "00420"), nebo pouze formou hodnot: .insert(0, "00420").
4 text (řetězec obalený uvozovkami) .insert(text = "něco")
5 Listbox index
6 (elements)
7 Text index (řetězec řádek.znak, případně konkrétní řetězec ("end", "insert", "current", "marks") .insert("1.0", "test")
8 line.character
9 text (řetězec obalený uvozovkami)
10 Treeview parent (prázdný řetězec, nebo 'I001'; kód konkrétní položky ('I050')) Definuje pod kterou položku se něco v Treeview zařadí.
11 text (řetězec obalený uvozovkami)
index číslo, end, nebo
12 iid
13 (možnosti)

Odkazy

[editovat]
  • Tkdocs tutorial.com – rozepisuje jednotlivé prvky modulu a uvádí jejich využití v Pythonu, Tcl, Ruby a Perlu
  • pythontutorial.net/tkinter – celkem dobře a podrobně rozepisuje různé možnosti, např. má velký přehled možností funkce bind()