基于python中tkinter的计算机实现

一、源代码

import tkinter as tk
class Calculator(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.title("我的计算器")
self.memory = 0 
self.Demo()

def Demo(self):
"""Create the Demo"""
btn_list = ["C", "(", ")", "/",
"7", "8", "9", "*",
"4", "5", "6", "-",
"1", "2", "3", "+",
"+/-", "0", ".", "="]
r = 1
c = 0
for b in btn_list:
self.button = tk.Button(self, text=b, width=5,
command=(lambda x=b: self.operate(x)))
self.button.grid(row=r, column=c, padx=3, pady=6)
c += 1
if c > 3:
c = 0
r += 1
self.entry = tk.Entry(self, width=21, borderwidth=3,
bg="light blue", font=("黑体", 11))
self.entry.grid(row=0, column=0, columnspan=4, padx=8, pady=6)

def operate(self, key):
"""press the button"""
if key == "=": 
result = eval(self.entry.get())
self.entry.insert(tk.END, " = " + str(result))
elif key == "C": 
self.entry.delete(0, tk.END)
elif key == "+/-": 
if "=" in self.entry.get():
self.entry.delete(0, tk.END)
elif self.entry.get()[0] == "-":
self.entry.delete(0)
else:
self.entry.insert(0, "-")
else: 
if "=" in self.entry.get():
self.entry.delete(0, tk.END)
self.entry.insert(tk.END, key)

if __name__ == "__main__":
Calculator().mainloop()

二、实现效果

posted @ 2020-12-08 14:59  李高佳20201218  阅读(286)  评论(0编辑  收藏  举报