Tkinter
Radiobutton Widget
Tlačítko Radiobutton, někdy nazývané výběrové tlačítko, je grafický prvek, který umožňuje výběr jedné ze zadané sady možností. Tato tlačítka mohou zahrnovat text (s jedním fontem) či obrázek. S widgetem "radiobutton" lze spojit funkci či metodu Pythonu. Stisk tlačítka tyto procedury aktivuje.
Toto tlačítko je pojmenováno po tlačítkách staršího radia, používaných pro výběr vlnového pásma či přednastavené stanice. Stisk jednoho tlačítka vyřadil působení jiných tlačítek.
Každá skupina radiových tlačítek musí být spojena s touž proměnnou. Stlačení tlačítka změní hodnotu této proměnné na jinou, přednastavenou hodnotu.
Jednoduchý příklad s radiovými tlačítky
from tkinter import * root = Tk() v = IntVar() Label(root, text="""Choose a programming language:""", justify=LEFT, padx=20).pack() Radiobutton(root, text="Python", padx=20, variable=v, value=1).pack(anchor=W) Radiobutton(root, text="Perl", padx=20, variable=v, value=2).pack(anchor=W) mainloop()
Výsledek předchozího skriptu vypadá takto:
Vylepšení příkladu
V některých případech jsou zapotřebí více než dvě tlačítka. Bylo by dost těžkopádné, kdybychom museli deklarovat každé tlačítko zvlášť. Řešení je ukázáno v následujícím příkladu. Máme seznam "languages", který obsahuje texty tlačítek a příslušné hodnoty. Pro vytvoření všech tlačítek můžeme použít smyčku "for".from tkinter import * root = Tk() v = IntVar() v.set(1) # počáteční volba, zde Python languages = [ ("Python",1), ("Perl",2), ("Java",3), ("C++",4), ("C",5) ] def ShowChoice(): print (v.get(), "-->", languages[v.get()-1][0]) Label(root, text="""Choose your favourite programming language:""", justify = LEFT, padx = 20).pack() for txt, val in languages: Radiobutton(root, text=txt, padx = 20, variable=v, command=ShowChoice, value=val).pack(anchor=W) mainloop()
Výsledek předchozího skriptu vypadá takto:
Indikátor
Místo tlačítek s prázdnými kruhovými otvory můžeme mít tlačítka s textem v rámečku. Zařídíme to tím, že nastavíme parametr "indicatoron" na nulu, což znamená, že nebude žádný odlišný indikátor radiového tlačítka.Definici widgetu "radibutton" z předchozího příkladu nahradíme následujícím kódem:
Radiobutton(root, text=txt, indicatoron = 0, width = 20, padx = 20, variable=v, command=ShowChoice, value=val).pack(anchor=W)
Přidali jsme parametr indicatoron a width (šířku).