前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用python tkinter实现一个简单计算器

使用python tkinter实现一个简单计算器

作者头像
叶子陪你玩
发布2020-05-20 23:47:24
4.7K0
发布2020-05-20 23:47:24
举报
文章被收录于专栏:叶子陪你玩编程

之前写过一系列的tkinter库控件的使用方法以及tkinter的三种布局方法。

但是并没有做过什么实际的案例,主要原因是因为使用tikinter做界面比较麻烦,没有可视化的设计来的快,就像我之前用的QT设计工具,就非常方便。

如果做一些简单的界面,使用tkinter还是很方便的,毕竟是python自带的库。

今天将会做下面这样的一个计算器,可以实现基本的加减程序的运算,整体代码逻辑比较简单,主要是一个回调函数的理解。

实现思路

1.UI界面布局

2.功能函数实现

3.重构布局代码

4.按钮回调函数绑定

具体实现过程

1.界面实现

实现基本窗口

创建父窗口app,设置几何尺寸400x400,设置标题,最后循环就实现最简单的框架了。

添加控件

控件这里主要标签和按钮,先来看添加一个标签和一个按钮。

里面的控件属性都是为了让控件显示在正好的位置,添加两个控件还是很简单的,但是我们有很多控件,如果还是用上面的方法就会非常麻烦,通过观察可以知道,每个按钮除了位置和按钮的文字不一样,其它都是一模一样的,所以这里我们可以使用循环来设置。

2.功能函数实现

界面实现了,接下来就是实现计算器的功能。

功能1:按下数字和运算符按钮,按钮的文字内容显示到标签。

功能2:按下清空按钮,将标签的内容全部置空删除。

功能3:按下退格按钮,标签往回删除一个内容。

功能4:按下等于按钮直接计算结果并显示在标签区。

先创建display变量,用来表示label的字符内容。set_content是实现功能1的,当我们按下某个按钮,就将按钮值传递给这个方法,这个方法会先通过display.get获取当前标签的内容,然后和text拼接到一起,最后重新放在到标签里面。

按下清空按钮就调用clear方法,直接将标签内容设为空;

按下退格就是先获取当前的标签内容,然后通过切片的方式获取除掉最后一个字符的内容,最后将当前内容传递给display,从而实现退格效果。

等于按钮按下就调用calculate方法,先获取当前标签的内容,通过eval方法计算结果,最后将算式和结果拼接成一个字符串返回给label显示,过程中如果出现错误异常,就显示error。

3.重构布局代码

方法都定义好了,但是按钮都是循环实现的,如果直接绑定回调函数肯定不行,因为只能绑定一个,根据上面的功能,按钮要分为4类。所以这里在循环显示按钮的时候进行分类,为之后绑定不同方法做准备,具体更改完代码如下。

4.按钮回调函数绑定

最后给不同类型按钮绑定上对应方法即可。等于,清空,退格都比较好理解,直接绑定方法,而功能1的数值和运算符号的相对复杂一定,因为回调需要传递参数,但是一般的写法是无法传递参数的,所以这里通过匿名函数构建了一个新函数,把之前的函数作为匿名函数表达式,这样就可以传递参数了。

大功告成。

动图效果

(全文完)


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叶子陪你玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现思路
  • 具体实现过程
    • 1.界面实现
      • 2.功能函数实现
        • 3.重构布局代码
          • 4.按钮回调函数绑定
            • 动图效果
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档