Python使用TK实现计算器

要用 Python 的 Tkinter 库实现一个简单的计算器,以下是一个示例代码。这个计算器具有基本的加、减、乘、除功能,并且支持通过按钮点击来输入数字和操作符。

import tkinter as tk

# 创建主窗口
root = tk.Tk()
root.title("Calculator")

# 设置显示屏幕
display = tk.Entry(root, width=16, font=("Arial", 24), borderwidth=2, relief="solid")
display.grid(row=0, column=0, columnspan=4)

# 定义按钮点击事件
def button_click(value):
    current_text = display.get()
    display.delete(0, tk.END)
    display.insert(0, current_text + value)

# 定义清空按钮事件
def clear():
    display.delete(0, tk.END)

# 定义等号按钮事件
def calculate():
    try:
        result = eval(display.get())
        display.delete(0, tk.END)
        display.insert(0, str(result))
    except Exception as e:
        display.delete(0, tk.END)
        display.insert(0, "Error")

# 创建按钮
button_texts = [
    "7", "8", "9", "/",
    "4", "5", "6", "*",
    "1", "2", "3", "-",
    "0", "C", "=", "+"
]

row = 1
col = 0

for text in button_texts:
    if text == "C":
        btn = tk.Button(root, text=text, width=4, height=2, font=("Arial", 18), command=clear)
    elif text == "=":
        btn = tk.Button(root, text=text, width=4, height=2, font=("Arial", 18), command=calculate)
    else:
        btn = tk.Button(root, text=text, width=4, height=2, font=("Arial", 18), command=lambda t=text: button_click(t))

    btn.grid(row=row, column=col)
    
    col += 1
    if col > 3:
        col = 0
        row += 1

# 运行主循环
root.mainloop()

代码解释:

  1. 创建主窗口: tk.Tk() 创建了一个主窗口。
  2. 显示屏幕: tk.Entry 用于显示输入的数字和计算结果。
  3. 按钮点击事件: button_click() 函数将每次点击的按钮值追加到显示屏上。
  4. 清空事件: clear() 函数用于清空显示屏。
  5. 计算事件: calculate() 函数用 eval() 计算表达式的值,并显示结果。
  6. 创建按钮: 使用一个循环来创建数字和操作符按钮,并将它们放置在网格布局中。

运行方式:

将以上代码保存为 .py 文件并运行,你会看到一个简单的计算器应用程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的基于Tkinter的计算器实现示例: ```python import tkinter as tk class Calculator: def __init__(self): self.root = tk.Tk() self.root.title("Calculator") # 创建显示面板 self.display = tk.Entry(self.root, width=20, font=('Arial', 16)) self.display.grid(row=0, column=0, columnspan=4, pady=10) # 添加按钮 # 第一行 btn_clear = tk.Button(self.root, text='C', width=5, height=2, command=self.clear) btn_clear.grid(row=1, column=0) btn_divide = tk.Button(self.root, text='/', width=5, height=2, command=lambda: self.button_click('/')) btn_divide.grid(row=1, column=1) btn_multiply = tk.Button(self.root, text='*', width=5, height=2, command=lambda: self.button_click('*')) btn_multiply.grid(row=1, column=2) btn_delete = tk.Button(self.root, text='DEL', width=5, height=2, command=self.delete) btn_delete.grid(row=1, column=3) # 第二行 btn_7 = tk.Button(self.root, text='7', width=5, height=2, command=lambda: self.button_click('7')) btn_7.grid(row=2, column=0) btn_8 = tk.Button(self.root, text='8', width=5, height=2, command=lambda: self.button_click('8')) btn_8.grid(row=2, column=1) btn_9 = tk.Button(self.root, text='9', width=5, height=2, command=lambda: self.button_click('9')) btn_9.grid(row=2, column=2) btn_minus = tk.Button(self.root, text='-', width=5, height=2, command=lambda: self.button_click('-')) btn_minus.grid(row=2, column=3) # 第三行 btn_4 = tk.Button(self.root, text='4', width=5, height=2, command=lambda: self.button_click('4')) btn_4.grid(row=3, column=0) btn_5 = tk.Button(self.root, text='5', width=5, height=2, command=lambda: self.button_click('5')) btn_5.grid(row=3, column=1) btn_6 = tk.Button(self.root, text='6', width=5, height=2, command=lambda: self.button_click('6')) btn_6.grid(row=3, column=2) btn_plus = tk.Button(self.root, text='+', width=5, height=2, command=lambda: self.button_click('+')) btn_plus.grid(row=3, column=3) # 第四行 btn_1 = tk.Button(self.root, text='1', width=5, height=2, command=lambda: self.button_click('1')) btn_1.grid(row=4, column=0) btn_2 = tk.Button(self.root, text='2', width=5, height=2, command=lambda: self.button_click('2')) btn_2.grid(row=4, column=1) btn_3 = tk.Button(self.root, text='3', width=5, height=2, command=lambda: self.button_click('3')) btn_3.grid(row=4, column=2) btn_equal = tk.Button(self.root, text='=', width=5, height=2, command=self.calculate) btn_equal.grid(row=4, column=3) # 第五行 btn_0 = tk.Button(self.root, text='0', width=5, height=2, command=lambda: self.button_click('0')) btn_0.grid(row=5, column=0) btn_dot = tk.Button(self.root, text='.', width=5, height=2, command=lambda: self.button_click('.')) btn_dot.grid(row=5, column=1) btn_left = tk.Button(self.root, text='(', width=5, height=2, command=lambda: self.button_click('(')) btn_left.grid(row=5, column=2) btn_right = tk.Button(self.root, text=')', width=5, height=2, command=lambda: self.button_click(')')) btn_right.grid(row=5, column=3) def run(self): self.root.mainloop() def button_click(self, char): self.display.insert(tk.END, char) def clear(self): self.display.delete(0, tk.END) def delete(self): self.display.delete(len(self.display.get()) - 1) def calculate(self): try: result = eval(self.display.get()) self.display.delete(0, tk.END) self.display.insert(tk.END, result) except: self.display.delete(0, tk.END) self.display.insert(tk.END, "Error") if __name__ == '__main__': calculator = Calculator() calculator.run() ``` 这个实现非常基础,只支持基本的加减乘除和括号运算,并且没有做输入安全性检查,仅供参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亚丁号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值