python gui
代码 如下
import tkinter as tk
class jsj:
def __init__(self):
self.root = tk.Tk()
self.root.title('简易计算器')
self.mylist = []
self.result = tk.StringVar()
self.result.set(0)
self.layout()
self.root.mainloop()
def put(self, x):
self.mylist.append(x)
self.result.set(''.join(self.mylist))
def delete(self):
self.mylist.clear()
self.result.set(0)
def back(self):
if len(self.mylist) > 0:
del self.mylist[-1]
self.result.set(self.mylist)
def calculation(self):
expression = ''.join(self.mylist)
result = eval(expression)
self.result.set(result)
self.mylist.clear()
self.mylist.append(str(result))
def operate(self, operator):
if len(self.mylist) > 0:
if self.mylist[-1] in ['+', '-', '*', '/', '.']:
self.mylist[-1] = operator
else:
self.mylist.append(operator)
self.result.set(''.join(self.mylist))
def layout(self):
label = tk.Label(self.root, textvariable=self.result, width=20, height=2, justify='left', anchor='se')
label.grid(row=0, column=0, padx=4, pady=4, columnspan=4)
button_clear = tk.Button(self.root, text='C', width=12, command=self.delete)
button_clear.grid(row=1, column=0, columnspan=2, padx=4, pady=4)
button_back = tk.Button(self.root, text='←', width=5, command=self.back)
button_back.grid(row=1, column=2, padx=4, pady=4)
button_div = tk.Button(self.root, text='/', width=5, command=lambda: self.operate('/'))
button_div.grid(row=4, column=3, padx=4, pady=4)
button_mult = tk.Button(self.root, text='*', width=5, command=lambda: self.operate('*'))
button_mult.grid(row=3, column=3, padx=4, pady=4)
button_seven = tk.Button(self.root, text=7, width=5, command=lambda: self.put('7'))
button_seven.grid(row=2, column=0, padx=4)
button_eight = tk.Button(self.root, text=8, width=5, command=lambda: self.put('8'))
button_eight.grid(row=2, column=1, padx=4)
button_nine = tk.Button(self.root, text=9, width=5, command=lambda: self.put('9'))
button_nine.grid(row=2, column=2, padx=4)
button_sub = tk.Button(self.root, text='-', width=5, command=lambda: self.operate('-'))
button_sub.grid(row=2, column=3, padx=4, pady=4)
button_four = tk.Button(self.root, text=4, width=5, command=lambda: self.put('4'))
button_four.grid(row=3, column=0, padx=4)
button_five = tk.Button(self.root, text=5, width=5, command=lambda: self.put('5'))
button_five.grid(row=3, column=1, padx=4)
button_six = tk.Button(self.root, text=6, width=5, command=lambda: self.put('6'))
button_six.grid(row=3, column=2, padx=4)
button_add = tk.Button(self.root, text='+', width=5, command=lambda: self.operate('+'))
button_add.grid(row=1, column=3, padx=4, pady=4)
button_one = tk.Button(self.root, text=1, width=5, command=lambda: self.put('1'))
button_one.grid(row=4, column=0, padx=4)
button_two = tk.Button(self.root, text=2, width=5, command=lambda: self.put('2'))
button_two.grid(row=4, column=1, padx=4)
button_three = tk.Button(self.root, text=3, width=5, command=lambda: self.put('3'))
button_three.grid(row=4, column=2, padx=4)
button_equal = tk.Button(self.root, text='=', width=12, command=self.calculation)
button_equal.grid(row=5, column=2, columnspan=2, padx=4, rowspan=5)
button_zero = tk.Button(self.root, text=0, width=5, command=lambda: self.put('0'))
button_zero.grid(row=5, column=1, padx=4)
button_pot = tk.Button(self.root, text='.', width=5, command=lambda: self.put('.'))
button_pot.grid(row=5, column=0, padx=4, pady=4)
jsj()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)