Как привязать клавишу Enter к событию равенства?
написал простой калькулятор и теперь возникла проблема с функцией, которая привязывает клавишу Enter к действию равно. Пытался это описать при помощи delaida('C').bind('<Enter>', output) и
def output(event):
entry.configure(command=calculate)
но тщетно.
Вот код:
from tkinter import *
name = Tk()
name.title('Calculator')
def add_digit(digit):
value = entry.get()
if value[0] == '0':
value = value[1:]
entry.delete(0, END)
entry.insert(0, value+digit)
def add_operation(operation):
value = entry.get()
if value[-1] in '+-*/':
value = value[:-1]
elif '+' or '-' or '*' or '/' in value:
calculate()
value = entry.get()
entry.delete(0, END)
entry.insert(0, value+operation)
def calculate():
value = entry.get()
if value in '+-*/':
value = value + value[1:]
entry.delete(0, END)
entry.insert(0, eval(value))
def button(button):
return Button(text=button, bd=3, font=('Century Gothic', 13), command=lambda: add_digit(button))
def operation(operation):
return Button(text=operation, bd=3, font=('Century Gothic', 13), command=lambda: add_operation(operation))
def equal(operation):
return Button(text=operation, bd=3, font=('Century Gothic', 13), command=calculate)
def delaida(operation):
return Button(text=operation, bd=3, font=('Century Gothic', 13), command=clear)
def delete():
entry.delete(0, END)
entry.insert(0, '0')
def clear():
entry.delete(0, END)
entry.insert(0, 0)
def output(event):
entry.configure(command=calculate)
entry = Entry(name, justify=RIGHT, font=('Century Gothic', 15))
entry.insert(0, '0')
entry.grid(columnspan=4, stick='we')
button('1').grid(row=1, column=0, stick='we')
button('2').grid(row=1, column=1, stick='we')
button('3').grid(row=1, column=2, stick='we')
button('4').grid(row=2, column=0, stick='we')
button('5').grid(row=2, column=1, stick='we')
button('6').grid(row=2, column=2, stick='we')
button('7').grid(row=3, column=0, stick='we')
button('8').grid(row=3, column=1, stick='we')
button('9').grid(row=3, column=2, stick='we')
button('0').grid(row=4, column=0, stick='we')
operation('+').grid(row=1, column=3, stick='we')
operation('-').grid(row=2, column=3, stick='we')
operation('/').grid(row=3, column=3, stick='we')
operation('*').grid(row=4, column=3, stick='we')
equal('=').grid(row=4, column=2, stick='we')
delaida('C').grid(row=4, column=1, stick='we')
delaida('C').bind('<Enter>', output)
name.mainloop()