[Tutor PyCZ] Tkinter - promenny pocet widgetu
geon
geon na post.cz
Sobota Únor 11 08:07:58 CET 2006
michal na kandrac.net napsal(a):
>
> Zdravim,
> jsem v Py zacatecnik a snazim se na veci prichazet sam, ale s timto si
> nevim rady:
> Potrebuji zobrazovat/nezobrazovat urcity pocet podobnych (Entry)
> widgetu Tkinter v zavislosti na velikosti nejake promenne. Prisel jsem
> na reseni zalozene na tom, ze widgety budou predem definovany a jejich
> zobrazeni bude zavisle na konstrukci if... promenna... , ale nezda se
> mi to moc vhodne reseni. Nejde to nejak jednoduseji, elegantneji?
Pokud nevíš, kolik čeho bude, je správná chvíle na to použít seznamy
(nebo slovníky). A to jak na vstup (kde můžeš mít třeba názvy), tak na
výstup, kde budeš schraňovat výstupní objekty nebo řídící proměnné
(IntVar, StringVar apod). Ve své kartotéce jsem našel něco podobného
(dynamické použití zaškrtávátka):
# -*- coding: utf8 -*-
"""Ukazkovy priklad vyroby aplikace v Tkinter.
Musi byt ulozeno v kodovani utf8."""
from Tkinter import *
def tisk():
print '\n','Hodnoty tlacitek'
for tlacitko in poleVar:
print tlacitko,"=", tlacitko.get()
hlavniOkno=Tk()
hlavniOkno.title('Aplikace v Tk')
jazykRamec=Frame(hlavniOkno)
Label(jazykRamec, text='Tvůj oblíbený jazyk').pack(side=LEFT)
seznam=['Python','C++', 'Java', 'Pascal', 'Basic']
poleVar=[]
for prvek in seznam:
var=IntVar()
tlacitko=Checkbutton(jazykRamec, text=prvek, variable=var)
tlacitko.pack(side=LEFT)
poleVar.append(var)
jazykRamec.pack(side=TOP)
tisk=Button(hlavniOkno, text='Tisk', command=tisk)
tisk.pack(ipadx=40)
mainloop()
Tak na to jukni ;-)
geon
Další informace o konferenci Tutor