Python-simple graphing calculator [with source code]

Python-Simple Graphing Calculator

Without further ado, let’s get straight to the code.

import tkinter as tk

class Calculator(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title("Calculator")
        self.geometry("400x400")
        self.result_var = tk.StringVar()
        self.result_var.set("")
        self.build_ui()

    def build_ui(self):
        # 创建输入框
        entry = tk.Entry(self, textvariable=self.result_var, font=("Arial", 24), bd=10, insertbackground="white", width=14, justify="right")
        entry.grid(row=0, column=0, columnspan=4)

        # 创建按钮
        self.create_button("7", 1, 0)
        self.create_button("8", 1, 1)
        self.create_button("9", 1, 2)
        self.create_button("÷", 1, 3)

        self.create_button("4", 2, 0)
        self.create_button("5", 2, 1)
        self.create_button("6", 2, 2)
        self.create_button("×", 2, 3)

        self.create_button("1", 3, 0)
        self.create_button("2", 3, 1)
        self.create_button("3", 3, 2)
        self.create_button("-", 3, 3)

        self.create_button("C", 4, 0)
        self.create_button("0", 4, 1)
        self.create_button("=", 4, 2)
        self.create_button("+", 4, 3)

    def create_button(self, text, row, column):
        button = tk.Button(self, text=text, font=("Arial", 18), width=5, height=2, command=lambda: self.on_button_click(text))
        button.grid(row=row, column=column)

    def on_button_click(self, text):
        if text == "C":
            self.result_var.set("")
        elif text == "=":
            try:
                result = eval(self.result_var.get().replace("×", "*").replace("÷", "/"))
                self.result_var.set(result)
            except Exception as e:
                self.result_var.set("Error")
        else:
            current_value = self.result_var.get()
            self.result_var.set(current_value + text)

if __name__ == "__main__":
    calculator = Calculator()
    calculator.mainloop()

running result:
Insert image description here
Insert image description here

Guess you like

Origin blog.csdn.net/qiao_yue/article/details/134556300