Калькулятор должен отобразить все уравнение - PullRequest
0 голосов
/ 25 сентября 2019

Я относительно новичок в 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()
...