Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 3, 2008 13:19:43

ivanff
От:
Зарегистрирован: 2008-10-25
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter действия

Доброе время суток вам.
Делаю калькулятор :)
как передать текст нажатой клавиши в функцию обработки нажатия, вроде там только событие можно передавать:

def die(event):
tv.set('1')

number_ = Button(frames, text=u'2', width=5)
number_.bind(“<Button-1>”, die)
number_.grid(row = 4, column = 0)

ну не использовать же свою функция для каждой кнопки калькулятора.
Спасибо за ответы.



Отредактировано (Ноя. 3, 2008 13:20:09)

Офлайн

#2 Ноя. 3, 2008 17:33:25

nobodyzzz
От:
Зарегистрирован: 2007-06-12
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter действия

ну можно например так сделать
number_.bind(“<Button-1>”, lambda event: tv.set(1))



Офлайн

#3 Ноя. 4, 2008 13:06:32

ivanff
От:
Зарегистрирован: 2008-10-25
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter действия

nobodyzzz
ну можно например так сделать
number_.bind(“<Button-1>”, lambda event: tv.set(1))
не подходит, функция которая должна вызываться не только tv.set(1) выполняет., а если записать вместо tv.set(1) мою функцию с параметром заданным как %s то выдает неправильный результат, вообще, который не должне ни когда появляться, виидимо в конструкции вида bind(“<Button-1>”, *) не пожет быть формальных параметров или как там они называются ((%s) % (var)).

сейчас использую для каждой кнопки свою функцию, которые уже и вызывают другую функцию, которая одинакова для всех, вот такой гемор.

вопрос открыт.



Офлайн

#4 Ноя. 23, 2008 13:11:53

питекантроп
От:
Зарегистрирован: 2008-10-28
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter действия

может тебе такой пример поможет, правда там ошибки лезут..

# -*- coding: cp1251 -*-

from Tkinter import *

def a(event, tkOb,n):
print n
tkOb.destroy()

root = Tk()
button = Button(root)
button["width"]= 10
button["text"]= "OK"
button.bind("<Button>", lambda event:a("<Button>",root,1))
button.pack()
root.mainloop()
root1 = Tk()
button = Button(root1)
button["width"]= 10
button["text"]= "OK1"
button.bind("<Button>", lambda event:a("<Button>",root1,2))
button.pack()
root1.mainloop()



Отредактировано (Ноя. 23, 2008 13:22:59)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version