用户:
技术喵的真传子弟查看:0 回复:0 评论:0 创建时间:2023-02-24T22:25:32
【作品展示】

【作品介绍】
虽然没人支持发布计算器5.0,但闲不住的我还是发布啦!·本次大更新优化了很多功能
·评论区打出产品建议(我就不信在没有捣乱的情况下还有人反馈BUG)
【作品源代码】
import tkinter as tk
import easygui as ea
from PySide2.QtWidgets import *
class Calc(tk.Tk):
"""普通窗体类"""
def __init__(self):
"""初始化实例"""
tk.Tk.__init__(self)
self.title(" ")
self.memory = 0 # 暂存数值
self.create()
def create(self):
"""创建界面"""
btn_list = ["MC", "MR", "MS", "帮助",
"C", "π", "e", "÷",
"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=11,
command=(lambda x=b: self.click(x)))
self.button.grid(row=r, column=c, padx=4, pady=6)
c += 1
if c > 3:
c = 0
r += 1
self.entry = tk.Entry(self, width=24, borderwidth=3,
bg="skyblue", font=("Impact", 21))
self.entry.grid(row=0, column=0, columnspan=40, padx=7, pady=5)
def click(self, key):
"""计算按钮"""
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 == "MS": # 存入数值
self.memory = self.entry.get()
if "=" in self.memory:
ix = self.memory.find("=")
self.memory = self.memory[ix + 2:]
self.title("M=" + self.memory)
elif key == "MR": # 取出数值
if self.memory:
self.entry.delete(0, tk.END)
self.entry.insert(tk.END, self.memory)
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, "-")
elif key == "MC": # 清除记忆
self.memory = self.entry.get()
self.title("")
self.entry.delete(0, tk.END)
elif key == "π": # 3.141592653589793238462喵33832795...圆周率
if "=" in self.entry.get():
self.entry.delete(0, tk.END)
self.entry.insert(tk.END, 3.14)
elif key == "e": # 2.7182818284590452353602874713527...指数缩写
if "=" in self.entry.get():
self.entry.delete(0, tk.END)
self.entry.insert(tk.END, 2.72)
elif key == "帮助": # 使用引导
ea.msgbox('MC:清除记忆储存数据', '清除记忆', '好的')
ea.msgbox('MR:取出记忆存储数据', '调用数据', '好的')
ea.msgbox('MS:添加记忆存储数据', '存入记忆', '好的')
ea.msgbox('C:清空计算框', '清除数据', '好的')
ea.msgbox('π:调用圆周率(取3.14)',
'3.141592653589793238462喵33832795...', '好的')
ea.msgbox('e:调用指数缩写(取2.72)',
'2.7182818284590452353602874713527...', '好的')
if ea.ynbox('对于“π”与“e”的用法,有些人可能不了解,如果需要,可以查看用法简介', '新手引导', ('查看', '忽略')):
ea.msgbox('π代表圆周率,是同一个圆中周长与直径的比,是个无限不循环小数,但是我们在生活中计算时,取3.14','圆周率','好的')
ea.msgbox('e代表指数缩写,跟圆周率一样,也是个无限不循环小数,所以在生活中,我们也是四舍五入,取两位小数,即2.72','指数缩写','好的')
elif key == "×": # 美观乘号
if "=" in self.entry.get():
self.entry.delete(0, tk.END)
self.entry.insert(tk.END, "*")
elif key == "÷": # 美观除号
if "=" in self.entry.get():
self.entry.delete(0, tk.END)
self.entry.insert(tk.END, "/")
else: # 其他键
if "=" in self.entry.get():
self.entry.delete(0, tk.END)
self.entry.insert(tk.END, key)
if __name__ == "__main__":
Calc().mainloop()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn