[Tutor PyCZ] dají se nějak vložit výběry z OptionMenu jako položky do seznamu?

Pavel Kosina geon na post.cz
Středa Listopad 1 18:39:56 CET 2006


Jan Šimůnek napsal(a):
> Omlouvám se převelice, ale to nepomohlo:
> program pana Kosiny:
>   
nevadí , zkusíme to jinak. Možná to bylo také tím, že jsem minule buď 
přesně nepochopil, co jsi chtěl, nebo jsi to ted upřesnil, tak, že došlo 
ke změně. Je to ostatně jedno. ;-)
> vlastně pokaždé dá hodnotu z OptionMenu na o číslo větší položku seznamu. A to 
> bez ohledu na to, odkud se volá (ze kterého OptionMenu).
> Já bych potřeboval, aby OptionMenu 0 dalo svou hodnotu na pozici 0, OptionMneu 
> 1 na pozici 1 atd., aby se hodnoty v GUI mohly zadávat i v nestejném pořadí, 
> případně zadání přeskakovat tam, kde byly v minulé sadě stejné hodnoty (např. 
> po sobě následují dva muži stejné věkové kategorie - takže by se jen v 
> seznamu změnily jen položky s odličnou hodnotou). A tohle se mi nedaří ani s 
> tou lambdou. 
> Mohl bych sice nadefinovat funkce ok0, ok1, ok2, (atd.), které by změnily vždy 
> odpovídající člen seznamu, ale připadá mi, že by mělo jít nějak poslat z 
> OptionMenu konkrétní číslo, aby ok "věděla", že s ní komunikuje OptionMenu č. 
> 7 (například)  a uložila převzatou hodnotu na pozici seznam[7].
>   
Drobnou úpravou toho přeci dosáhneš. Do funkce lambda budeš v každém 
jiném OptionMenu dávat jiné okno.neco, nebo rovnou nějaké číslo. 
okno.neco bude ted již vlastně zcela zbytečné i uvnitř funkce. Jestli 
tomu ted již dobře rozumím. Tedy asi takhle:

option1 = OptionMenu(okno, promenna, u"jedna", u"dva", u"tři", u"čtyři", 
command=lambda x:ok(x, 1))
option2 = OptionMenu(okno, promenna, u"jedna", u"dva", u"tři", u"čtyři", 
command=lambda x:ok(x, 2))
option3 = OptionMenu(okno, promenna, u"jedna", u"dva", u"tři", u"čtyři", 
command=lambda x:ok(x, 3))

DOufám, že jsem na něco nezapomněl, píši to narychlo. Koukám, že minule byla funkce napsána nevhodně, ne-li skoro zbytečně blbě. No s tím si snad již poradíš ;-)




-- 

geon
Pavel Kosina



Další informace o konferenci Tutor