Кнопки не работают

from tkinter import*
root = Tk()
frame1 = Frame(root).pack()
frame2 = Frame(root).pack()
frame3 = Frame(root).pack()
frame4 = Frame(root).pack()
root.title('Калькулятор')

number1 = Label(frame1,text = 'Число 1').pack()                              
entNumber1 = Entry(frame1).pack()

number2 = Label(frame2,text = 'Число 2').pack()
entNumber2 = Entry(frame2).pack()

entShpora = Entry(frame4).pack(side = 'bottom')                              
shpora = Label(frame4,text = 'Результат').pack(side = 'bottom')

btnPlus = Button(frame3, text = '+')
btnPlus.pack(side = 'right')
btnPlus.bind("<Button-1>", 'output')
btnMinus = Button(frame3, text = '-')
btnMinus.pack(side = 'left')
btnMinus.bind("<Button-1>", 'output')

def output(event):
    entShpora.delete(0, END)
    lol = int(entNumber1.get())
    lox = int(entNumber2.get())
    c = lol + lox
    entShpora.insert("0", str(c))

def output(event):
    entShpora.delete(0, END)
    lol = int(entNumber1.get())
    lox = int(entNumber2.get())
    c = lol - lox
    entShpora.insert("0", str(c))

root.mainloop()

Ответы (1 шт):

Автор решения: n1tr0xs
  1. Вторым аргументом методу bind нужно передавать функцию, а не строку.
  2. Вы не можете использовать две разные функции с одинаковым именем в python.
  3. Функции должны быть объявлены до их использования.
  4. Метод pack размещает созданный объект, а не создает его.
from tkinter import*

def plus_func(event):
    entShpora.delete(0, END)
    lol = int(entNumber1.get())
    lox = int(entNumber2.get())
    c = lol + lox
    entShpora.insert("0", str(c))

def minus_func(event):
    entShpora.delete(0, END)
    lol = int(entNumber1.get())
    lox = int(entNumber2.get())
    c = lol - lox
    entShpora.insert("0", str(c))


root = Tk()
frame1 = Frame(root)
frame1.pack()
frame2 = Frame(root)
frame2.pack()
frame3 = Frame(root)
frame3.pack()
frame4 = Frame(root)
frame4.pack()
root.title('Калькулятор')

number1 = Label(frame1,text = 'Число 1').pack()                              
entNumber1 = Entry(frame1)
entNumber1.pack()

number2 = Label(frame2,text = 'Число 2').pack()
entNumber2 = Entry(frame2)
entNumber2.pack()

entShpora = Entry(frame4)
entShpora.pack(side = 'bottom')
shpora = Label(frame4,text = 'Результат').pack(side = 'bottom')

btnPlus = Button(frame3, text = '+')
btnPlus.pack(side = 'right')
btnPlus.bind("<Button-1>", plus_func)
btnMinus = Button(frame3, text = '-')
btnMinus.pack(side = 'left')
btnMinus.bind("<Button-1>", minus_func)

root.mainloop()

→ Ссылка