Найти - Пользователи
Полная версия: Tkinter действия
Начало » GUI » Tkinter действия
1
ivanff
Доброе время суток вам.
Делаю калькулятор :)
как передать текст нажатой клавиши в функцию обработки нажатия, вроде там только событие можно передавать:

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)

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

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

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

# -*- 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()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB