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

Jan Šimůnek jsim na med.muni.cz
Středa Listopad 1 15:49:01 CET 2006


Omlouvám se převelice, ale to nepomohlo:
program pana Kosiny:
.................................začátek
# -*- coding: utf-8 -*-
from Tkinter import *

def ok(hodnota, neco):
    u"Volaná funkce při změně hodnoty udělátka 'option'"
    print u"hodnota je:", promenna.get(), hodnota
    okno.neco=okno.neco+1
    print okno.neco
    seznam[okno.neco]=promenna.get()
    print seznam
  
okno = Tk()

seznam=[1]*10
okno.neco=0

promenna = StringVar(okno)  # tkinterovská proměnná
promenna.set(u"jedna")      # počáteční hodnota

option = OptionMenu(okno, promenna, u"jedna", u"dva", u"tři", u"čtyři", 
command=lambda x:ok(x, okno.neco))
option.pack()

mainloop()
.................................konec
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].

Děkuji
Jan Šimůnek


Další informace o konferenci Tutor