Codes: import tkinter as tk def click(event): current = str(entry.get()) new = current + str(event.widget["text"]) entry.delete(0, tk.END) entry.insert(0, new) def clear(): entry.delete(0, tk.END) def calculate(): try: result = eval(entry.get()) entry.delete(0, tk.END) entry.insert(0, str(result)) except: entry.delete(0, tk.END) entry.insert(0, "خطا") # ساخت پنجره اصلی root = tk.Tk() root.title("ماشین حساب") root.geometry("300x400") root.resizable(False, False) # فیلد نمایش entry = tk.Entry(root, font=("Arial", 20), borderwidth=5, relief="ridge", justify='right') entry.pack(fill=tk.BOTH, padx=10, pady=10) # دکمهها buttons = [ ['7', '8', '9', '/'], ['4', '5', '6', '*'], ['1', '2', '3', '-'], ['0', '.', '=', '+'] ] for row in buttons: frame = tk.Frame(root) frame.pack(expand=True, fill="both") for btn_text in row: if btn_text == "=": btn = tk.Button(frame, text=btn_text, font=("Arial", 18), bg="lightgreen", command=calculate) else: btn = tk.Button(frame, text=btn_text, font=("Arial", 18)) btn.bind("<Button-1>", click) btn.pack(side="left", expand=True, fill="both") # دکمه پاک کردن clear_btn = tk.Button(root, text="پاک کردن", font=("Arial", 16), bg="tomato", command=clear) clear_btn.pack(fill="both", padx=10, pady=5) # اجرای برنامه root.mainloop()