以下是一個使用 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()

這個計算器具有以下功能:

  1. 支持基本的加減乘除運算
  2. 可以輸入小數點
  3. 包含清除按鈕(C)
  4. 錯誤處理(例如除以零或無效表達式時顯示 "Error")
  5. 窗口大小可自適應

使用方法:

  • 運行代碼後會彈出一個計算器窗口
  • 點擊數字和運算符按鈕輸入表達式
  • 點擊 "=" 按鈕計算結果
  • 點擊 "C" 按鈕清除當前輸入

注意事項:

  • 這個計算器使用了 eval() 函數來計算表達式,雖然方便,但在處理不可信輸入時可能存在安全風險。不過對於簡單的桌面計算器來説,這是可以接受的。
  • 代碼中使用了 Tkinter 的 ttk 模塊,它提供了更好看的主題化控件。

如果你想擴展這個計算器,可以考慮添加以下功能:

  • 支持括號運算
  • 添加更多的數學函數(如三角函數、平方根等)
  • 歷史記錄功能
  • 記憶功能(M+、M-、MR 等)