[python] schování widgetu v Tk

geon geon na post.cz
Pondělí Červenec 18 14:04:47 CEST 2005


Vita Titl napsal(a):

>Lze nějak schovat nějakou komponentu - widget - prvek v Tk. Jakože mám tam tlačítko a potřebuje tam dát nějaký jiný ale nechci, aby byly obě současně použitelný a viditelný.
>  
>
viz : x6487-methods.htm

# -*- coding: utf8 -*-
"""Ukazkovy priklad v Tkinter."""

from Tkinter import *

priznak=True  

def tisk():
    global priznak
    print priznak
    if priznak:
        listbox.pack_forget()
    else:
        listbox.pack()
    priznak = not priznak

hlavniOkno=Tk()
hlavniOkno.title('Aplikace v Tk')

listbox=Listbox(hlavniOkno, selectmode=MULTIPLE)
seznam=['Python','C++', 'Java', 'Pascal', 'Basic']

for prvek in seznam:
    listbox.insert(END, prvek)
       
listbox.pack()
tisk=Button(hlavniOkno, text='Tisk', command=tisk)
tisk.pack(ipadx=40)

mainloop()


Tlačítko zde mění po přepnutí polohu :-). Není to záměr, i když to může 
být hezké..... Odstranit by to mělo jít pomocí Framů, že si to dáš do 
různých framů - framy zustavaji, ikdyž prazdné, a widgety se obnovují 
pak na ta smaá místa...

Pokud chceš widget uplne odstranit, pak: listbox.destroy() - jde to 
taky, ale pak nejde použít pack(), ale kompletně znovu nadefinovat.

Některé widgety (možná všechny :-) ) umožňují DISABLE, že zašedne a není 
možno používat, třebas Entry:
jmeno_widgetu['state']=DISABLED

Tak asi tak ;-)

-- 
geon
Vyjímka je pravidlo. Rekurzivní.




Další informace o konferenci Python