python tkinter实现简单计算器
来源:互联网 发布:mac地址转pin码工具 编辑:程序博客网 时间:2024/04/27 14:48
功能分析
基础功能
- 需要有显示区,可以使用label,text,entry
- 显示按键0-9以及运算符
- 鼠标点击按键时,按键的值或者运算结果能够在显示区显示
- 能够清空显示区以备下一次运算输入
功能完善和增强
- 如果使用能获取输入的显示区,需要对异常输入进行识别(如字母)
- 界面能够缩放(最小化,最大化)
代码实现
from tkinter import *class Calculator(Frame): def __init__(self): Frame.__init__(self) self.pack(expand=YES, fill=BOTH) self.master.title('calculator') self.master.rowconfigure( 0, weight = 1 ) self.master.columnconfigure( 0, weight = 1 ) self.grid( sticky = W+E+N+S ) display = StringVar() #add entry ,use grid method #textvariable must use 'display' instead of 'StrinvVar()', or click button shows nothing in Entry entry = Entry(self, relief=SUNKEN, textvariable=display) #W+E+N+S means that the widget should be expanded in both directions. Default is to center the widget in the cell. entry.grid(row=0, column=0, columnspan=4, sticky=W+E+N+S) #add button, use grid method grid = '789+456-123*0./=' for index,textChar in enumerate(grid): a = Button(self, text=textChar, width=5, command=lambda text=textChar:display.set(display.get() + text)) a.grid(row=1+index//4, column=index%4) button_text = a.cget("text") #print(button_text) if button_text == '=': a.config(command=lambda:display.set(eval(display.get()))) #add clear button b = Button(self, text="clear", width=20, command=lambda:display.set("")) b.grid(row=7, column=0, columnspan=4, sticky=W+E+N+S)if __name__ == '__main__': Calculator().mainloop()
实现结果
- 界面显示
- 加减乘除运算正常,clear功能正常
尚未实现
- 除法除数为0的异常处理
- 非数字输入的异常处理
- 按钮大小固定,需改为pack方式以满足缩放需求
参考资料
grid layout
change widget text
get widget text
get widget setting
entry widget
grid geometry
python gui模块
0 0
- python tkinter实现简单计算器
- python tkinter 实现简单计算器2
- Python Tkinter实现的简单计算器
- Python Tkinter实现的计算器
- python:利用tkinter实现的计算器源代码
- tkinter-简单计算器
- Python Tkinter简易计算器
- python-tkinter 简易计算器
- python Tkinter学习笔记 简单的计算器 03
- Python 简单计算器实现
- 基于Tkinter用50行Python代码实现简易计算器
- 80行代码使用Python+tkinter实现一个计算器
- 收藏笔记Python tkinter 计算器
- python中Tkinter练习(计算器)
- Python实现的简单计算器
- 简单scheme计算器-python实现
- tkinter实现简单编辑器
- tkinter实现简单画图
- JAVA并发处理经验(四)并行模式与算法4:并行搜索模式
- 讨论:什么才算是真正的编程能力?
- C#基础精华08(反射,程序集)
- IOS级联(省份和城市)
- HibernateUtil公共类的使用------java操作数据库(1)
- python tkinter实现简单计算器
- hdu2191(多重背包问题)
- AlertDialog(自定义对话框)示例
- Matlab Compiler或mcc的使用
- 一个导出指定包下 spring Controller excel清单的例子(包括包名、类名、方法名、访问路径)
- HDU 1213 How Many Tables
- 258. Add Digits
- 通过Hexo在GitHub搭站全记录
- java流与文件——对象流和序列化