Я относительно новичок в python, и мне нужно отобразить на моем графическом графическом калькуляторе все уравнение, а не исчезать после ввода оператора.Чтобы быть понятным, калькулятор работает, однако, мое задание требует показать все уравнение.Например, я хочу, чтобы он отображал 27 + 94, а не отображал его отдельно без знака плюс.Ответ не обязательно должен отображаться одновременно.
Я попытался изменить параметры self.display, self.current и self.new_num с небольшим успехом.Я использую 3.7 Python.
from tkinter import *
class Calc():
def __init__(self):
self.total = 0
self.current = ""
self.new_num = True
self.op_pending = False
self.op = ""
self.eq = False
def num_press(self, num):
self.eq = False
temp = text_box.get()
temp2 = str(num)
if self.new_num:
self.current = temp2
self.new_num = False
else:
if temp2 == '.':
if temp2 in temp:
return
self.current = temp + temp2
self.display(self.current)
def calc_total(self):
self.eq = True
self.current = float(self.current)
if self.op_pending == True:
self.do_sum()
else:
self.total = float(text_box.get())
def display(self, value):
text_box.delete(0, END)
text_box.insert(0, value)
def do_sum(self):
if self.op == "add":
self.total += self.current
if self.op == "minus":
self.total -= self.current
if self.op == "times":
self.total *= self.current
if self.op == "divide":
self.total /= self.current
self.new_num = True
self.op_pending = False
self.display(self.total)
def operation(self, op):
self.current = float(self.current)
if self.op_pending:
self.do_sum()
elif not self.eq:
self.total = self.current
self.new_num = True
self.op_pending = True
self.op = op
self.eq = False
sum1 = Calc()
root = Tk()
calc = Frame(root)
calc.grid()
var = StringVar()
root.title("Calculator with Python!!!")
root.resizable(width=False, height=False)
# Text Box Display
text_box = Entry(calc, font='arial 20', bg="white", bd=12, width=70, justify=RIGHT, textvariable=var)
text_box.grid(row=0, column=0, columnspan=9, pady=1)
text_box.insert(0, "0") # When you lunch the GUI, you will get 0 in text_box
# Snippet of buttons
equals = Button(calc, text = "=", pady=1, bd=4, font='arial 20', width=18, height=2)
equals["command"] = sum1.calc_total
equals.grid(row=5, column=3)
root.mainloop()