Jak jsme si již řekli v minulém čísle tutoriálu, správce Grid je používán pro rozložení do pomyslné mřížky, kterou tento Grid vytvoří na rodičovském prvku. Použití vypadá takto - grid(row=0, column=1), kde row značí řádek a column sloupec. V tomto příkladu je prvek umístěn do řádku prvního a sloupce druhého, protože téměř v každém programovacím jazyce indexujeme od 0, 0 značí v těchto případech první, počáteční řádek, sloupec, prvek apod. Přesněji uvidíme na jednoduchém příkladě.
# -*- coding: utf-8 -*-
from Tkinter import *
rodic=Tk()
Label(rodic, foreground="red", text="Login").grid(column=0, row=0)
Label(rodic, foreground="blue", text="Heslo").grid(column=0, row=1)
login = Entry(rodic, width=20, bg="lightblue").grid(column=1, row=0)
heslo = Entry(rodic, width=20, bg="blue",show="*").grid(column=1, row=1)
a = Button(rodic, text="Vyčistit").grid(column=0, row=2)
b = Button(rodic, text="Přihlásit").grid(column=1, row=2)
mainloop()
Objevil se nám zde nový parametr show=" ", který způsobí zobrazení znaku v uvozovkách na místo znaků, které vložíme jako když vyplňujeme heslo při přihlašování například na facebooku. Dále pak foreground="nazev_barvy" nám obarvil popisky a objevili se zde také tlačítka (Button) s mnou definovanými popisky.
Dále můžeme použít parametry padx, pady stejně jako u Pack() a rowspan, columnspan, který určuje zda daný prvek zabírá více než jeden řádek (row) nebo sloupec (colunm) a jejich počet. Pokud se nechá prázdný, je nastaven na 1, protože v případě 0 by samozřejmě neměl smysl.
Parametr Sticky
Pokud použijeme tento parametr sticky, který může nabývat jedné nebo více hodnot z (N - North, S - South, E - East, W -West), můžeme změnit polohu namísto implicitně dané centrované na jakoukoli z uvedených. Zarovnání severo - západně by vypadalo takto - sticky=N+W.
# -*- coding: utf-8 -*-
from Tkinter import *
rodic=Tk()
Label(rodic, text=u"Login").grid(row=0, sticky=W)
Label(rodic, text=u"Heslo").grid(row=1, sticky=W)
e1 = Entry(rodic)
e2 = Entry(rodic)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
mainloop()
Nezapomeňte, že používání Pack() a Grid() zároveň je nežádoucí, program nepůjde ani spustit.