diff --git a/calculator.py b/calculator.py new file mode 100644 index 0000000..df087f8 --- /dev/null +++ b/calculator.py @@ -0,0 +1,112 @@ +import tkinter as tk + +# 创建主窗口 +root = tk.Tk() +root.title("Simple Calculator") + +# 输入框 +entry = tk.Entry(root, width=35, borderwidth=5) +entry.grid(row=0, column=0, columnspan=3, padx=10, pady=10) + +# 定义按钮的功能 +def button_click(number): + current = entry.get() + entry.delete(0, tk.END) + entry.insert(0, str(current) + str(number)) + +def button_clear(): + entry.delete(0, tk.END) + +def button_add(): + first_number = entry.get() + global f_num + global math + math = "addition" + f_num = float(first_number) + entry.delete(0, tk.END) + +def button_equal(): + second_number = entry.get() + entry.delete(0, tk.END) + + if math == "addition": + entry.insert(0, f_num + float(second_number)) + elif math == "subtraction": + entry.insert(0, f_num - float(second_number)) + elif math == "multiplication": + entry.insert(0, f_num * float(second_number)) + elif math == "division": + if float(second_number) != 0: + entry.insert(0, f_num / float(second_number)) + else: + entry.insert(0, "Error") + +def button_subtract(): + first_number = entry.get() + global f_num + global math + math = "subtraction" + f_num = float(first_number) + entry.delete(0, tk.END) + +def button_multiply(): + first_number = entry.get() + global f_num + global math + math = "multiplication" + f_num = float(first_number) + entry.delete(0, tk.END) + +def button_divide(): + first_number = entry.get() + global f_num + global math + math = "division" + f_num = float(first_number) + entry.delete(0, tk.END) + +# 定义按钮 +button_1 = tk.Button(root, text="1", padx=40, pady=20, command=lambda: button_click(1)) +button_2 = tk.Button(root, text="2", padx=40, pady=20, command=lambda: button_click(2)) +button_3 = tk.Button(root, text="3", padx=40, pady=20, command=lambda: button_click(3)) +button_4 = tk.Button(root, text="4", padx=40, pady=20, command=lambda: button_click(4)) +button_5 = tk.Button(root, text="5", padx=40, pady=20, command=lambda: button_click(5)) +button_6 = tk.Button(root, text="6", padx=40, pady=20, command=lambda: button_click(6)) +button_7 = tk.Button(root, text="7", padx=40, pady=20, command=lambda: button_click(7)) +button_8 = tk.Button(root, text="8", padx=40, pady=20, command=lambda: button_click(8)) +button_9 = tk.Button(root, text="9", padx=40, pady=20, command=lambda: button_click(9)) +button_0 = tk.Button(root, text="0", padx=40, pady=20, command=lambda: button_click(0)) + +button_add = tk.Button(root, text="+", padx=39, pady=20, command=button_add) +button_equal = tk.Button(root, text="=", padx=91, pady=20, command=button_equal) +button_clear = tk.Button(root, text="Clear", padx=79, pady=20, command=button_clear) + +button_subtract = tk.Button(root, text="-", padx=41, pady=20, command=button_subtract) +button_multiply = tk.Button(root, text="*", padx=40, pady=20, command=button_multiply) +button_divide = tk.Button(root, text="/", padx=41, pady=20, command=button_divide) + +# 将按钮放置在屏幕上 +button_1.grid(row=3, column=0) +button_2.grid(row=3, column=1) +button_3.grid(row=3, column=2) + +button_4.grid(row=2, column=0) +button_5.grid(row=2, column=1) +button_6.grid(row=2, column=2) + +button_7.grid(row=1, column=0) +button_8.grid(row=1, column=1) +button_9.grid(row=1, column=2) + +button_0.grid(row=4, column=0) + +button_clear.grid(row=4, column=1, columnspan=2) +button_add.grid(row=5, column=0) +button_equal.grid(row=5, column=1, columnspan=2) + +button_subtract.grid(row=6, column=0) +button_multiply.grid(row=6, column=1) +button_divide.grid(row=6, column=2) + +# 运行主循环 +root.mainloop()