以下是一個使用 Python 和 Tkinter 實現的簡單計算器,支持基本的加減乘除運算:
python
運行
import tkinter as tk
from tkinter import ttk
class Calculator:
def __init__(self, root):
self.root = root
self.root.title("計算器")
self.root.geometry("300x400")
# 創建顯示框
self.display = ttk.Entry(root, font=("Arial", 20))
self.display.grid(row=0, column=0, columnspan=4, padx=10, pady=10, sticky="nsew")
# 按鈕佈局
buttons = [
'7', '8', '9', '/',
'4', '5', '6', '*',
'1', '2', '3', '-',
'0', '.', '=', '+'
]
# 創建按鈕並添加到網格
row = 1
col = 0
for button in buttons:
ttk.Button(root, text=button, command=lambda x=button: self.on_button_click(x),
style='Accent.TButton').grid(row=row, column=col, padx=5, pady=5, sticky="nsew")
col += 1
if col > 3:
col = 0
row += 1
# 添加清除按鈕
ttk.Button(root, text="C", command=self.clear_display, style='Destructive.TButton').grid(
row=row, column=0, columnspan=4, padx=5, pady=5, sticky="nsew")
# 配置網格權重,使按鈕和顯示框能夠自適應窗口大小
for i in range(5):
root.grid_rowconfigure(i, weight=1)
for i in range(4):
root.grid_columnconfigure(i, weight=1)
# 配置按鈕樣式
style = ttk.Style()
style.configure('Accent.TButton', font=("Arial", 14))
style.configure('Destructive.TButton', font=("Arial", 14), background='red')
def on_button_click(self, value):
if value == "=":
try:
result = eval(self.display.get())
self.display.delete(0, tk.END)
self.display.insert(tk.END, str(result))
except Exception as e:
self.display.delete(0, tk.END)
self.display.insert(tk.END, "Error")
else:
self.display.insert(tk.END, value)
def clear_display(self):
self.display.delete(0, tk.END)
if __name__ == "__main__":
root = tk.Tk()
calculator = Calculator(root)
root.mainloop()
- 運行代碼後會彈出一個計算器窗口
- 點擊數字和運算符按鈕輸入表達式
- 點擊 "=" 按鈕計算結果
- 點擊 "C" 按鈕清除當前輸入
- 這個計算器使用了
eval()函數來計算表達式,雖然方便,但在處理不可信輸入時可能存在安全風險。不過對於簡單的桌面計算器來説,這是可以接受的。 - 代碼中使用了 Tkinter 的 ttk 模塊,它提供了更好看的主題化控件。
- 支持括號運算
- 添加更多的數學函數(如三角函數、平方根等)
- 歷史記錄功能
- 記憶功能(M+、M-、MR 等)