Форум сайта python.su
Вот код:
g = DoubleVar()
def prog (a1, b1, c1):
D = (b1*b1) - 4*a1*c1
x1 = int()
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-1>", prog(a1, b1, c1))
knop.pack()
Label(tk,
textvariable=g,
relief="groove",
borderwidth=3,
font=("Courier", 14, "bold"),
justify=LEFT,
width=80,
padx=10,
pady=20,
takefocus=True,
).pack()
tk.mainloop()
Офлайн
knop.bind("<Button-1>", prog(a1, b1, c1))
Офлайн
Офлайн
Что то у вас как то все через одно место с Tkinter… Зачем биндить на кнопку нажатие кнопки мыши? command в конструкторе кнопки на что?
исчерпывающая документация по Tkinter в pdf
Офлайн
igor.kaistНасколько я знаю, комманд не возьмет функцию с аргументами. Что мне собственно и нужно.
command в конструкторе кнопки на что?
Офлайн
Бинд тоже не возьмёт. Принимается функция! То есть, в вашем случае необходима функция, которая вызывает функцию с параметром.
Хотя пример конечно абсолютно не нуждается в таком подходе.
Офлайн
OldSkifЗагляните в топик, ссылку на который дал sp3, вы приятно удивитесь…
Насколько я знаю, комманд не возьмет функцию с аргументами. Что мне собственно и нужно.
Офлайн
GriffonПочему бинд не возьмет?.. Он прекрасно с этим справляется…
Бинд тоже не возьмёт.
Офлайн
OldSkifок, давайте разберемся…
Почему бинд не возьмет?.. Он прекрасно с этим справляется…
def foo():return 'hello
print foo()
print foo
Офлайн
Я согласен с вашими доводами, Игорь. Второй вечер бьюсь с этим кодом…
Как же мне передать таки значение х1 в Lable только после нажатия клавиши?..
...
a1 = a.get()
b1 = b.get()
c1 = c.get()
g = IntVar()
g.set(0)
def prog (aa, bb, cc):
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(a1, b1, c1))
knop.pack()
Label(tk,
textvariable=g,
...
Офлайн