- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
【技术分享】快速上手TkinterGUI编程,打造自己的计算器!
我一直觉得,编程最有意思的地方就是能把脑子里的想法变成看得见摸得着的东西。
今天咱们就来玩点刺激的,用Python的Tkinter库搞一个简单的计算器GUI程序。
别看它简单,麻雀虽小五脏俱全,通过它我们能学到不少GUI编程的基本概念。
Tkinter是个啥玩意儿
Tkinter是Python自带的GUI库,不用额外安装,拿来就能用,简直不要太方便。它提供了一堆组件,比如按钮、输入框啥的,让咱们能轻松搭建图形界面。
准备工作
先确保你的Python环境没问题。Tkinter一般是默认安装的,不过要是出现啥异常,可以试试重装Python。
开始撸代码
咱们直接上手,边写边学:
???
1importtkinterastk
2fromtkinterimportmessagebox
3
4classCalculator:
5def__init__(self,master):
6self.master=master
7master.title(“小白计算器”)
8
9#创建显示框
10self.display=tk.Entry(master,width=30,justify=right)
11self.display.grid(row=0,column=0,columnspan=4,padx=5,pady=5)
12
13#按钮布局
14self.create_button(7,1,0)
15self.create_button(8,1,1)
16self.create_button(9,1,2)
17self.create_button(/,1,3)
18
19self.create_button(4,2,0)
20self.create_button(5,2,1)
21self.create_button(6,2,2)
22self.create_button(*,2,3)
23
24self.create_button(1,3,0)
25self.create_button(2,3,1)
26self.create_button(3,3,2)
27self.create_button(-,3,3)
28
29self.create_button(0,4,0)
30self.create_button(C,4,1)
31self.create_button(=,4,2)
32self.create_button(+,4,3)
这段代码看着挺唬人,其实逻辑很简单。我们定义了一个Calculator类,它就是咱们计算器的主体。__init__方法是类的构造函数,用来初始化计算器的界面。
我们先创建了一个显示框,用来显示输入的数字和计算结果。然后用循环创建了一堆按钮,排列成一个4x4的网格。
按钮功能实现
光有界面不行啊,得给按钮加点料:
???
1defcreate_button(self,text,row,col):
2button=tk.Button(self.master,text=text,width=10,height=2,
3command=lambda:self.click(text))
4button.grid(row=row,column=col,padx=2,pady=2)
5
6defclick(self,key):
7ifkey===:
8try:
9result=eval(self.display.get())
10self.display.delete(0,tk.END)
11self.display.insert(tk.END,str(result))
12except:
13messagebox.showerro
您可能关注的文档
- 【开发利器】vulture模块:发现Python代码中的“死”代码,让项目更清爽!.docx
- 【时间处理利器】PythonArrow模块,让你告别繁琐的datetime!.docx
- 【提升效率】学会使用aiofiles模块,让Python文件操作更高效!.docx
- 30个Python爬虫的实战项目(附源码).docx
- 124个Python案例,完整源代码!.docx
- Aardio,一个牛逼的python库!.docx
- acos,一个经典的python库!.docx
- akshare,一个超强的Python库!.docx
- Alembic,一个数据库迁移工具!.docx
- Altair,一个声明式统计可视化的Python库!.docx
- 辽宁省鞍山市2025年八年级上学期期末考试历史试卷(含答案).docx
- 湖南省长沙市长郡中学2025年高二上学期期末考试政治试卷(含答案).doc
- 湖南省长沙市一中教育集团 2022-2023学年九年级上学期期中道德与法治试卷(含解析).docx
- 辽宁省鞍山市台安县2025年九年级上学期1月期末考试道德与法治试卷(含答案).docx
- 湖南省株洲市2025届高三年级教学质量统一检测思想政治试题(含答案).docx
- 湖南省张家界市桑植县2025年八年级上学期道德与法治期末试卷(含答案).docx
- 招商仁和和家健康团体特定医疗保险条款.pdf
- 中信保诚「智富稳赢」终身寿险B款(万能型)-产品说明书.pdf
- 中信保诚「智富稳赢」终身寿险B款(万能型)-产品条款.pdf
- 03-中华盛世馨安终身重大疾病保险费率表.pdf
文档评论(0)