Share your text data anonymously and free
import tkinter as tk
class Calculator:
def __init__(self, master):
self.master = master
master.title("Калькулятор")
self.result_var = tk.StringVar()
self.result_var.set("")
self.result_label = tk.Label(master, textvariable=self.result_var)
self.result_label.grid(row=0, column=0, columnspan=4, sticky="nsew")
self.create_buttons()
def create_buttons(self):
button_text = [
"7", "8", "9", "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
"0", ".", "=", "+"
]
buttons = []
for i in range(len(button_text)):
button = tk.Button(self.master, text=button_text[i], width=5, height=2, command=lambda x=button_text[i]: self.button_click(x))
buttons.append(button)
row = i // 4 + 1
column = i % 4
button.grid(row=row, column=column)
def button_click(self, key):
if key == "=":
result = self.calculate()
self.result_var.set(result)
elif key == "C":
self.result_var.set("")
else:
self.result_var.set(self.result_var.get() + key)
def calculate(self):
try:
result = eval(self.result_var.get())
except ZeroDivisionError:
result = "Ошибка: деление на ноль"
except Exception:
result = "Ошибка"
return result
root = tk.Tk()
calculator = Calculator(root)
root.mainloop()