[项目分享]还是我~~~

5772浏览
查看: 5772|回复: 0

[项目分享] 还是我~~~

[复制链接]
"""计算器""":
  1. from tkinter import *
  2. #创建横条型框架
  3. def frame(root, side):
  4.     w = Frame(root)
  5.     w.pack(side = side, expand = YES, fill = BOTH)
  6.     return w
  7. #创建按钮
  8. def button(root, side, text, command = None):
  9.     w = Button(root, text = text, command = command)
  10.     w.pack(side = side, expand = YES, fill = BOTH)
  11.     return w
  12. #继承了Frame类,初始化程序界面的布局
  13. class Calculator(Frame):
  14.     def __init__(self):
  15.         
  16.         Frame.__init__(self)
  17.         
  18.         self.pack(expand = YES, fill = BOTH)
  19.         self.master.title('Simple Calculater')
  20.         
  21.         display = StringVar()
  22.         #添加输入框
  23.         Entry(self, relief = SUNKEN,
  24.               textvariable = display).pack(side = TOP, expand = YES,
  25.                                            fill = BOTH)
  26.                 #添加横条型框架以及里面的按钮
  27.         for key in('123', '456', '789', '-0.'):
  28.             keyF = frame(self, TOP)
  29.             for char in key:
  30.                 button(keyF, LEFT, char, lambda w = display, c = char:w.set(w.get() + c))
  31.                 #添加操作符按钮
  32.         opsF = frame(self, TOP)
  33.         for char in '+-*/=':
  34.             if char == '=':
  35.                 btn = button(opsF, LEFT, char)
  36.                 btn.bind('<ButtonRelease - 1>', lambda e, s = self, w = display:s.calc(w), '+')
  37.             else:
  38.                 btn = button(opsF, LEFT, char, lambda w = display, s = '%s' %char:w.set(w.get() + s))
  39.                 #添加清除按钮
  40.         clearF = frame(self, BOTTOM)
  41.         button(clearF, LEFT, 'clear', lambda w = display:w.set(''))
  42.         #调用eval函数计算表达式的值
  43.     def calc(self, display):
  44.         try:
  45.             display.set(eval(display.get()))
  46.         except:
  47.             display.set("ERROR")
  48. #程序的入口
  49. if __name__ == '__main__':
  50.     print('来啦!!!')
  51.     Calculator().mainloop()
  52.         
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail