- 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
- 讲稿:深入理解“五个注重”把握进一步深化改革统筹部署以钉钉子精神抓好落实.pdf
- 副市长在2025年全市医疗工作会议上的讲话.docx
- 2025年市县处级以上党委(党组)理论学习中心组专题学习计划.docx
- 市民族宗教事务局党组书记、局长2024年度民主生活会个人对照检视发言材料.docx
- 烟草局党组书记2024年度抓基层党建工作述职报告.docx
- (汇编)学习2025年全国教育工作会议精神心得体会发言心得感悟.pdf
- 汇编学习领会在二十届中纪委四次全会上的重要讲话精神心得体会.pdf
- 在2025年镇安全生产、消防安全和生态环境保护第一次全体会议上的讲话提纲.docx
- 书记干部座谈会上的讲话+纪委全会上的讲话.pdf
- 党课:从毛泽东诗词中感悟共产党人初心使命.docx
最近下载
- 在创新中传承在传承中创新2025春季开学典礼校长发言四篇.docx VIP
- 高考英语阅读理解100篇.doc VIP
- 2025年二建机电实务押题班模拟试卷 .pdf VIP
- 《汽车制动排放测试方法(制动测功机法)第2部分:测试系统》标准征求意见稿.docx
- 自然拼读 phonics kids book3双字母组合发音.pdf
- 高考英语阅读理解100篇.pdf VIP
- 2025年公务员考试申论试题与参考答案.docx VIP
- 2025年江苏省初中学生化学素质与实验能力竞赛预赛试题(含答案).pdf VIP
- 中国漆包线行业市场发展现状及前景趋势与投资分析研究报告.docx
- 2024年安康职业技术学院单招职业倾向性测试题库(500题)含答案解析.docx VIP
文档评论(0)