2013-06-16 2 views
0

Я пытаюсь передать переменную с событием tkinter bind() на спинбоксе. Во время отладки я обнаружил, что Мне не удалось передать переменную в спинбокс bind() функция обработчика событий. Действительно, строка print var функции моего обработчика puteventqueue() печатает (значение по умолчанию для проигрывателя), независимо от значения, отображаемого сопловой камерой.bind() в tkinter не возвращает ожидаемое значение

Любые идеи относительно того, как исправить мою ошибку, приветствуются! Я должен делать очевидную ошибку, но я искал в течение нескольких часов ...

Функция со счётчиком обработчика событий:

def puteventqueue(var): 
    print 'spinbox has been clicked' 
    print var 

Определение со счётчиком:

#spinboxes for color filters 
spinval = tk.IntVar() 
s = tk.Spinbox(root, from_=0, to=180, textvariable=spinval, increment=5) 
filters = spinval.get() 
s.grid(column=3, row=0) 
s.bind('<Button-1>', lambda event: puteventqueue(filters)) 

ответ

2

Поскольку фильтры является уже установлено в 0 и никогда не менялось.

Попробуйте следующее:

s.bind('<Button-1>', lambda event: puteventqueue(spinval.get())) 
+0

Спасибо! Теперь я чувствую себя очень глупо :-) – Raoul

Смежные вопросы