[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