Текстовое поле в калькуляторе не обновляется при нажатии кнопкиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Текстовое поле в калькуляторе не обновляется при нажатии кнопки

Сообщение Anonymous »

Этот код отлично работает для разработки графического интерфейса, но всякий раз, когда я нажимаю кнопку в графическом интерфейсе, ничего не происходит, в текстовом поле не происходит никаких изменений. Я проверил, вызываются ли функции с помощью операторов печати, и они были.


import tkinter

calculation = ""

def add(value):

global calculation

calculation += str(value)

text_result.delete(1.0, "end")

def evaluate():

global calculation

try:

calculation = str(eval(calculation))

text_result.delete(1.0, "end")

text_result.insert(1.0, calculation)

except:

clear()

text_result.insert(1.0, "ERROR")

def clear():

global calculation

calculation = ""

text_result.delete(1.0, "end")

root = tkinter.Tk()

root.geometry("350x200")

root.title("Simple Calculator")

text_result = tkinter.Text(root, height=2, width=16, font=("Arial", 26))

text_result.grid(row=0, column=0, columnspan=5)

btn1 = tkinter.Button(root, text="1", command=lambda: add(1), width=5, font=("Arial", 14))

btn2 = tkinter.Button(root, text="2", command=lambda: add(2), width=5, font=("Arial", 14))

btn3 = tkinter.Button(root, text="3", command=lambda: add(3), width=5, font=("Arial", 14))

btn4 = tkinter.Button(root, text="4", command=lambda: add(4), width=5, font=("Arial", 14))

btn5 = tkinter.Button(root, text="5", command=lambda: add(5), width=5, font=("Arial", 14))

btn6 = tkinter.Button(root, text="6", command=lambda: add(6), width=5, font=("Arial", 14))

btn7 = tkinter.Button(root, text="7", command=lambda: add(7), width=5, font=("Arial", 14))

btn8 = tkinter.Button(root, text="8", command=lambda: add(8), width=5, font=("Arial", 14))

btn9 = tkinter.Button(root, text="9", command=lambda: add(9), width=5, font=("Arial", 14))

btn0 = tkinter.Button(root, text="0", command=lambda: add(0), width=5, font=("Arial", 14))

btn_plus = tkinter.Button(root, text="+", command=lambda: add("+"), width=10, font=("Arial", 20))

btn_minus = tkinter.Button(root, text="-", command=lambda: add("-"), width=10, font=("Arial", 20))

btn_mul = tkinter.Button(root, text="x", command=lambda: add("*"), width=10, font=("Arial", 20))

btn_div = tkinter.Button(root, text="/", command=lambda: add("/"), width=10, font=("Arial", 20))

btn_clear = tkinter.Button(root, text="C", command=clear, width=5, font=("Arial", 14))

btn_eql = tkinter.Button(root, text="=", command=evaluate, width=5, font=("Arial", 14))

btn1.grid(row=2, column=1)

btn2.grid(row=2, column=2)

btn3.grid(row=2, column=3)

btn4.grid(row=3, column=1)

btn5.grid(row=3, column=2)

btn6.grid(row=3, column=3)

btn7.grid(row=4, column=1)

btn8.grid(row=4, column=2)

btn9.grid(row=4, column=3)

btn0.grid(row=5, column=2)

btn_plus.grid(row=2, column=4)

btn_minus.grid(row=3, column=4)

btn_mul.grid(row=4, column=4)

btn_div.grid(row=5, column=4)

btn_clear.grid(row=5, column=1)

btn_eql.grid(row=5, column=3)

root.mainloop()


Подробнее здесь: https://stackoverflow.com/questions/787 ... on-clicked
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»