OldSkif
Почему бинд не возьмет?.. Он прекрасно с этим справляется…
ок, давайте разберемся…
1. Прочтите еще раз топик, ссылку на который дали выше.
В вашем коде (не важно bind это или command), вы ВЫЗЫВАЕТЕ функцию с аргументами, причем вызывается она тут же, на месте, а не когда наступает событие, а не даете указатель на ту функцию которая должна быть вызвана. Сравните:
def foo():return 'hello
print foo()
print foo
2. При использовании bind, вы нарушаете стандартное поведение и реакцию виджета. Например, становится невозможным использование навигации с клавиатуры (кнопочка должна наживаться при нажатии пробела при активном фокусе виджета). Да и кнопка “наживается” при отпускании кнопки мыши, а не при нажатии.
Мы же хотим учиться, давайте стараться делать все правильно, а не быдлокодить, лишь бы сейчас работало.
3. Как уже говорили выше, не очень то правильно передавать таким образом аргументы, по крайней мере в вашем случае. Общей картины не видно конечно, но в большинстве случаях этого делать не надо. Нужно изначально правильно проектировать приложение: это не только красиво, но и помогает избежать трудностей в дальнейшем.