网站大量收购闲置独家精品文档,联系QQ:2885784924

【技术分享】快速上手TkinterGUI编程,打造自己的计算器!.docx

【技术分享】快速上手TkinterGUI编程,打造自己的计算器!.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

您可能关注的文档

文档评论(0)

百科文库 + 关注
实名认证
内容提供者

通信资料

1亿VIP精品文档

相关文档