Форум сайта python.su
def answer(num): #функция проверки print("Выбран ответ ",num) if num!=data[2]: return False print('false') else: return True print('true') ans1=Button(root, text = "1") #ответ 1 ans2=Button(root, text = "2") #ответ 2 ans3=Button(root, text = "3") #ответ 3 ans1.bind("<Button-1>", answer(1)) ans2.bind("<Button-1>", answer(2)) ans3.bind("<Button-1>", answer(3)) ans1.pack() ans2.pack() ans3.pack()
ans1=Button(root, text = "1", command=answer(1)) #ответ 1
Отредактировано 4emp1ON (Апрель 24, 2013 14:38:28)
Офлайн
Вам нужно разобраться в следующей разнице:
Что такое объект результата вызова функции и объект функции.
Почитайте М. Лутца. Сейчас я дам Вам ответ, но если Вы не почитаете - дальше будет значительно хуже.
По Вашему вопросу есть два варианта:
I
def answer(event, num): print("Выбран ответ %s" % (num)) ans1=Button(root, text="1") ans2=Button(root, text="2") ans3=Button(root, text="3") ans1.bind("<Button-1>", lambda event: answer(event, 1)) ans2.bind("<Button-1>", lambda event: answer(event, 2)) ans3.bind("<Button-1>", lambda event: answer(event, 3)) ans1.pack() ans2.pack() ans3.pack()
def answer(event): print("Выбран ответ %s" % (event.widget["text"])) ans1=Button(root, text="1") ans2=Button(root, text="2") ans3=Button(root, text="3") ans1.bind("<Button-1>", answer) ans2.bind("<Button-1>", answer) ans3.bind("<Button-1>", answer) ans1.pack() ans2.pack() ans3.pack()
Отредактировано 4kpt (Апрель 24, 2013 23:58:36)
Офлайн
М. Лутц уже в процессе прочтения. Спасибо большое!
Офлайн