[Tutor PyCZ] přenos hodnoty proměnné z elementu GUI (Tkinter) do hlavního programu

Jan Šimůnek jsim na med.muni.cz
Pondělí Říjen 9 15:18:53 CEST 2006


Potřeboval bych vytvořit nějaké udělátko, kde by se myší naťukaly hodnoty 
(vybrané z předem daných, takže níže uvedený radiobutton je přímo ideální 
volba), a pak se v hlavním programu přenesly do textového řetězce, který by 
se uložil. 

Když například použiju Radiobutton a Button, který by měl vypsat hodnotu 
proměnné nastavené tím Radiobuttonem:

# začátek programu
from Tkinter import * 
 
okno = Tk() 
v = IntVar() 
    
Radiobutton(okno, text="Jedna", variable=v, value=1).pack(anchor=W) 
Radiobutton(okno, text="Dva", variable=v, value=2).pack(anchor=W) 

def callback():
    print v

b = Button(okno, text="OK", command=callback)
b.pack()
 
mainloop() 
# konec programu

tak mi funkce callback pořád vypisuje (bez ohledu na to, jaký je stav 
Radiobuttonu) jen nedefinovanou proměnnou. Pokud za definicí nastavím v=0,
tak zase tato hodnota zůstává 0, bez ohledu na to, co se před zmáčknutím 
Buttonu dělo s Radiobuttonem. 
Očekával jsem, že po zmáčknutí Buttonu se budou vypisovat hodnoty 1 nebo 2 
podle toho, který Radiobutton je zmáčknutý (a že nedefinovaná nebo na původní 
hodnotu nastavená bude v jen před prvním zmáčknutím Radiobuttonu.

Zkoušel jsem i nadefinovat funkce "jedna"  a "dve", které by přidělily 
proměnné v příslušnou hodnotu a volat je z Radiobuttonu command=jedna, resp. 
command=dve - u příslušného knoflíku, ale ani to hodnotu v neovlivní.

Děkuji za případnou radu

Jan Šimůnek


Další informace o konferenci Tutor