Найти - Пользователи
Полная версия: Функция и кнопка
Начало » GUI » Функция и кнопка
1 2
igor.kaist
А все очень просто оказывается, если все делать изначально правильно, а не через одно место. Советую все же почитать на досуге 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()
По аналогии разберетесь?
Тут я намеренно не стал давать решение по вашему коду с применением bind. C передачей аргументов, если уж так приспичило, можно разобраться, почитав топик, ссылку на который давали выше.


P.S. Если интересно, и здесь можно обойтись без StringVar :)
def foo():
label['text']=ent.get()

label=Label(root)
P.P.S. Хочется именно научить, а не тупо дать ответ на вопрос…
sp3
...

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,
...
ой, все испортил :rolleyes:
OldSkif
Спасибо вам большое!
Я нашел еще одно решение, но оно опять же “через одно место”
Вот:
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,
Вобщем вставил еще одну функцию, теперь значение стало передаваться только после нажатия)
igor.kaist
OldSkif
Вобщем вставил еще одну функцию, теперь значение стало передаваться только после нажатия)
Все то, о чем говорили выше как бы бесполезно? Про lambda читали? :)
OldSkif
Нет, совсем не бесполезно! Теперь буду разбираться с предложенными вариантами.
Очень заинтересовал вариант кода от сп3. Небольшая замена в корне меняет ход событий.
Ваш же уровень еще для меня недостижим, буду работать.
Насчет вашей ссылки на пдф - я с английским не на такой короткой ноге(((
Про лямбда читал, но к стыду своему почти ничего о ней не помню. Тоже буду разбираться.
Еще раз спасибо всем.
igor.kaist
OldSkif
Ваш же уровень еще для меня недостижим, буду работать.
Спасибо за комплимент, но хочу заметить, что мой вариант проще! Вообще, был удивлен что вы сразу в такие дебри полезли :)
OldSkif
igor.kaist
Спасибо за комплимент, но хочу заметить, что мой вариант проще! Вообще, был удивлен что вы сразу в такие дебри полезли :)
Возможно, и проще - не спорю.
В смысле - в дебри?
Griffon
def prog1(event):
return prog(a1, b1, c1)
knop.bind("<Button>", prog1)
Всётаки рекомендуется почитать ссылки, которые вам дали.
Обязательно Tkinter GUI for Python
И вот это http://python.su/forum/viewtopic.php?pid=60335#p60335
Ссылки на всё это вам давали выше.
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