Форум сайта python.su
А все очень просто оказывается, если все делать изначально правильно, а не через одно место. Советую все же почитать на досуге pdf, ссылку на которую я дал.
Чуть изменю мой пример выше:
from Tkinter import *
root=Tk()
def foo():
label_var.set(ent.get())
label_var=StringVar()
label=Label(root,textvariable=label_var)
label.pack()
ent=Entry(root)
ent.pack()
but=Button(root,text='get',command=foo)
but.pack()
root.mainloop()
def foo():
label['text']=ent.get()
label=Label(root)
Отредактировано (Март 1, 2011 23:08:57)
Офлайн
...
g = IntVar()
g.set(0)
def prog (*arg):
a1 = a.get()
b1 = b.get()
c1 = c.get()
D = (b1*b1) - 4*a1*c1
x1 = -(b1 + math.sqrt(D))/2*a1
x2 = -(b1 - math.sqrt(D))/2*a1
g.set(x1)
knop = Button(tk,
text=k,)
knop.bind("<Button>", prog)
knop.pack()
Label(tk,
textvariable=g,
...
Отредактировано (Март 1, 2011 23:20:13)
Офлайн
Спасибо вам большое!
Я нашел еще одно решение, но оно опять же “через одно место”
Вот:
a1 = a.get()
b1 = b.get()
c1 = c.get()
g = IntVar()
g.set(0)
def prog(a1, b1, c1) :
D = (b1*b1) - 4*a1*c1
x1 = -(b1 + math.sqrt(D))/2*a1
x2 = -(b1 - math.sqrt(D))/2*a1
g.set(x1)
def prog1(event):
return prog(a1, b1, c1)
knop = Button(tk,
text=k,)
knop.bind("<Button>", prog1)
knop.pack()
Label(tk,
textvariable=g,
Офлайн
OldSkifВсе то, о чем говорили выше как бы бесполезно? Про lambda читали? :)
Вобщем вставил еще одну функцию, теперь значение стало передаваться только после нажатия)
Офлайн
Нет, совсем не бесполезно! Теперь буду разбираться с предложенными вариантами.
Очень заинтересовал вариант кода от сп3. Небольшая замена в корне меняет ход событий.
Ваш же уровень еще для меня недостижим, буду работать.
Насчет вашей ссылки на пдф - я с английским не на такой короткой ноге(((
Про лямбда читал, но к стыду своему почти ничего о ней не помню. Тоже буду разбираться.
Еще раз спасибо всем.
Офлайн
OldSkifСпасибо за комплимент, но хочу заметить, что мой вариант проще! Вообще, был удивлен что вы сразу в такие дебри полезли :)
Ваш же уровень еще для меня недостижим, буду работать.
Офлайн
igor.kaistВозможно, и проще - не спорю.
Спасибо за комплимент, но хочу заметить, что мой вариант проще! Вообще, был удивлен что вы сразу в такие дебри полезли :)
Офлайн
def prog1(event):
return prog(a1, b1, c1)
knop.bind("<Button>", prog1)
Офлайн