Это происходит от кнопки, которая при нажатии генерирует радиобуй. Я не могу получить доступ к выбору, сделанному с помощью радиобарабана. Все работает нормально, но выход выбранной функции равен нулю. Я пытаюсь использовать как локальный, так и глобальный var, но результат тот же.Функция обратного вызова Python tkinter RadioButton
def callback_st(): # RadioButton select technology
var = IntVar()
m=0
for m in range(len(un_tech)):
Radiobutton(radio_frame, text=un_tech[m], value=m, variable=var,
command=selected(var)).pack(anchor=W)
def selected(var):
print(var)
Это не работает. Я решил с помощью лямбда:
def selected(jst):
global sel_technology
sel_technology=un_tech[jst]
print(sel_technology)
def callback_st(): #RadioButton select technology
var_st = IntVar()
m=0
for m in range(len(un_tech)):
Radiobutton(radio_frame, text=un_tech[m], value=m, variable=var_st,
command = lambda jst=m: selected(jst)).pack(anchor=W)
Это работает, как я хочу, но это не решение, которое я хочу, и я думаю, что это не правильный путь. Итак, кто-нибудь может помочь мне найти правильный путь?
Вы знакомы с концепцией местных и глобальных переменных? 'var' - локальная переменная. –