还是我~~~

2022-04-031.7万
AI 快速预览详细 收起
这是一个使用Python和tkinter库构建简易计算器的项目教程。项目名称是“计算器”,硬件清单主要是Python环境和tkinter库。最终效果是一个功能齐全的计算器,支持基本的加减乘除运算。难度等级适合初学者,特别是STEM教育场景中的学生。通过这个项目,初学者可以理解GUI编程的基础,无需复杂的前置知识。
"""计算器""":
  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.         
复制代码


创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -