效果:
代码加注释:
import tkinter as tk
class Calculator:
def __init__(self, master):
self.master = master
self.master.title("计算器")
# create screen widget 创建屏幕小部件
self.screen = tk.Entry(self.master, width=25, font=('Arial', 16), justify='right')
self.screen.grid(row=0, column=0, columnspan=4, pady=5)
# create buttons 创建按钮
buttons = [
'7', '8', '9', '/',
'4', '5', '6', '*',
'1', '2', '3', '-',
'0', '.', '=', '+'
]
# loop over button list and create buttons 循环遍历按钮列表并创建按钮
r = 1 # 初始行号
c = 0 # 初始列号
for b in buttons:
if b == '=':
btn = tk.Button(self.master, text=b, width=10, height=2, command=self.calculate)
btn.grid(row=r, column=c, columnspan=2, padx=2, pady=2) # 跨度为2列
else:
btn = tk.Button(self.master, text=b, width=5, height=2, command=lambda x=b: self.append(x))
btn.grid(row=r, column=c, padx=2, pady=2)
c += 1 # 列数加1
if c > 3:
c = 0 # 回到第一列
r += 1 # 行数加1
def append(self, val):
self.screen.insert('end', val) # 将按下的数字或操作符添加到屏幕文本框末尾
def calculate(self):
try:
result = eval(self.screen.get()) # 从屏幕文本框获取表达式并计算结果
self.screen.delete(0, 'end') # 清空屏幕文本框
self.screen.insert('end', str(result)) # 将结果显示在屏幕文本框中
except:
self.screen.delete(0, 'end') # 清空屏幕文本框
self.screen.insert('end', '错误') # 显示错误信息
root = tk.Tk()
calc = Calculator(root)
root.mainloop()
使用Tkinter库创建一个窗口,包含一个文本框和一组按钮。按钮被分为4列,每列包含4个按钮。数字和操作符按钮都是等宽的,并且操作符按钮具有不同的颜色以与数字按钮区分开来。
当用户按下数字按钮时,该数字将添加到文本框的末尾。当用户按下操作符按钮时,该操作符将执行相应的数学运算并将结果显示在文本框中。如果用户尝试除以零或执行其他不正确的计算,则文本框将显示“错误”消息。
80%的人都看过的文章
本文来自凡蜕博客(https://blog.ysboke.cn), 转载请带上地址.。