Как добавить знак «равно» в графический интерфейс калькулятора tkinter? - PullRequest
0 голосов
/ 25 сентября 2019

Справочная информация: я новичок, делающий проекты, чтобы познакомиться с Python.

Проблема: я хотел бы добавить знак «равно» в своем калькуляторе, который я сделал с помощью tkinter.Как я могу это сделать?

Моя идея: я прокомментировал сделанную мной попытку.Можно ли в любом случае включить оператор if с "и", чтобы я мог сказать что-то вроде, если метод add и равен затем +

Вот мой код:

from tkinter import Tk, Label, Button, IntVar, Entry, END, W, E


    class Calculator:
        def __init__(self, master):
            self.total = 0
            self.entered_number = 0

            self.title_label = Label(master, text="Calculator")

            self.total_label_text = IntVar()
            self.total_label_text.set(self.total)
            self.total_label = Label(master, textvariable=self.total_label_text)

            self.label = Label(master, text="Total:")

            vcmd = master.register(self.validate)
            self.entry = Entry(master, validate="key", validatecommand=(vcmd, "%P"))

            self.addition_button = Button(
                master, text="Add", command=lambda: self.update("add")
            )
            self.subtract_button = Button(
                master, text="Minus", command=lambda: self.update("minus")
            )
            self.equalto_button = Button(
                master, text="Equals", command=lambda: self.update("equalto")
            )
            self.reset_button = Button(
                master, text="Reset", command=lambda: self.update("reset")
            )
            self.close_button = Button(master, text="Close", command=master.quit, bg="red")

        # LAYOUT
            self.label.grid(row=1, column=1, sticky=W)
            self.total_label.grid(row=1, column=0, columnspan=2, sticky=E)

            self.entry.grid(row=2, column=0, columnspan=2, sticky=W + E)

            self.addition_button.grid(row=3, column=0)
            self.subtract_button.grid(row=3, column=1)
            self.equalto_button.grid(row=3, column=2)
            self.reset_button.grid(row=4, column=0, sticky=W + E)
            self.close_button.grid(row=4, column=1)

        def validate(self, new_text):
            if not new_text:
                self.entered_number = 0
                return True

            try:
                self.entered_number = int(new_text)
                return True
            except ValueError:
                return False

        def update(self, method):
            if method == "add":
                self.total += self.entered_number
            elif method == "minus":
                self.total -= self.entered_number
            # elif method == "equalto":
                # self.total += self.entered_number
            else:
                self.total = 0

            self.total_label_text.set(self.total)
            self.entry.delete(0, END)


    root = Tk()
    my_gui = Calculator(root)
    root.mainloop()

1 Ответ

0 голосов
/ 25 сентября 2019

В Python знак «равно» равен «==», при этом в первый «=» вносятся изменения, если требуется «больше чем», «меньше чем» и т. Д. Редактировать: «=» - этоприсваивание, в то время как "==" является сравнением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...