Python实战---使用Tkinter构建计算器

目录

1  导入必要的模块

 2  创建主窗口并设置标题

3 加入计算器按钮

3.1 创建Entry小部件文本输入区域

3.2 使用grid布局管理器来定位和调整Entry小部件的大小。

3.3 创建按钮,并将其添加到GUI界面上

4 函数实现

 4.1 get_variables()函数实现

 4.2 get_operation()函数实现

4.3 calculate()函数实现

 4.3.1 获取输入

4.3.2 计算表达式

4.3.3 清除输入框

4.3.4 显示结果或错误

 4.4 clear_all()函数实现

4.5  undo()函数实现

4.5.1 获取输入框内容

4.5.2 检查输入框是否为空

4.5.3 撤销操作

4.5.4 显示错误信息

 4.6 fact()函数实现

 5 编译

6 拓展---打包为可执行文件

6.1 安装 PyInstaller

 6.2 进入.py文件目录

6.3 创建可执行文件

 6.4 找到并双击可执行文件

7 完整代码


计算器是我们日常生活中都会用到的一个应用程序。如果你正在学习python编程,Calculator是一个既简单又有用的项目。今天,我们将使用Tkinter构建一个Python计算器,步骤简单易懂。

Python提供了各种实用程序来设计GUI(图形用户界面),其中最常用的一个实用程序是Tkinter。它是构建GUI应用程序的最快和最简单的方法之一。此外,Tkinter是跨平台的,因此相同的代码可以在macOS, Windows和Linux上运行。

如下是计算器预览:

1  导入必要的模块

from tkinter import *
import ast
from math import factorial
  • tkinter:用于创建GUI应用程序。 
  • ast:用于安全地评估表达式。
  • factorial:计算阶乘的数学函数。

 2  创建主窗口并设置标题

root = Tk()
root.title('基于python tkinter的计算器')
root.mainloop()

如上代码为设置主窗口的标题,标题为“基于python tkinter的计算器” ,运行代码后窗口如下:

 

3 加入计算器按钮

#adding the input field
display = Entry(root)
display.grid(row=1,columnspan=6,sticky=N+E+W+S)
 
#Code to add buttons to the Calculator

Button(root,text="1",command = lambda :get_variables(1)).grid(row=2,column=0, sticky=N+S+E+W)
Button(root,text=" 2",command = lambda :get_variables(2)).grid(row=2,column=1, sticky=N+S+E+W)
Button(root,text=" 3",command = lambda :get_variables(3)).grid(row=2,column=2, sticky=N+S+E+W)
 
Button(root,text="4",command = lambda :get_variables(4)).grid(row=3,column=0, sticky=N+S+E+W)
Button(root,text=" 5",command = lambda :get_variables(5)).grid(row=3,column=1, sticky=N+S+E+W)
Button(root,text=" 6",command = lambda :get_variables(6)).grid(row=3,column=2, sticky=N+S+E+W)
 
Button(root,text="7",command = lambda :get_variables(7)).grid(row=4,column=0, sticky=N+S+E+W)
Button(root,text=" 8",command = lambda :get_variables(8)).grid(row=4,column=1, sticky=N+S+E+W)
Button(root,text=" 9",command = lambda :get_variables(9)).grid(row=4,column=2, sticky=N+S+E+W)
 
#adding other buttons to the calculator
Button(root,text="AC",command=lambda :clear_all()).grid(row=5,column=0, sticky=N+S+E+W)
Button(root,text=" 0",command = lambda :get_variables(0)).grid(row=5,column=1, sticky=N+S+E+W)
Button(root,text=" .",command=lambda :get_variables(".")).grid(row=5, column=2, sticky=N+S+E+W)
 
 
Button(root,text="+",command= lambda :get_operation("+")).grid(row=2,column=3, sticky=N+S+E+W)
Button(root,text="-",command= lambda :get_operation("-")).grid(row=3,column=3, sticky=N+S+E+W)
Button(root,text="*",command= lambda :get_operation("*")).grid(row=4,column=3, sticky=N+S+E+W)
Button(root,text="/",command= lambda :get_operation("/")).grid(row=5,column=3, sticky=N+S+E+W)
 
# adding new operations
Button(root,text="pi",command= lambda :get_operation("*3.14")).grid(row=2,column=4, sticky=N+S+E+W)
Button(root,text="%",command= lambda :get_operation("%")).grid(row=3,column=4, sticky=N+S+E+W)
Button(root,text="(",command= lambda :get_operation("(")).grid(row=4,column=4, sticky=N+S+E+W)
Button(root,text="exp",command= lambda :get_operation("**")).grid(row=5,column=4, sticky=N+S+E+W)
 
Button(root,text="<-",command= lambda :undo()).grid(row=2,column=5, sticky=N+S+E+W)
Button(root,text="x!", command= lambda: fact()).grid(row=3,column=5, sticky=N+S+E+W)
Button(root,text=")",command= lambda :get_operation(")")).grid(row=4,column=5, sticky=N+S+E+W)
Button(root,text="^2",command= lambda :get_operation("**2")).grid(row=5,column=5, sticky=N+S+E+W)
Button(root,text="^2",command= lambda :get_operation("**2")).grid(row=5,column=5, sticky=N+S+E+W)
Button(root,text="=",command= lambda :calculate()).grid(columnspan=6, sticky=N+S+E+W)

3.1 创建Entry小部件文本输入区域

Entry小部件通常用于让用户输入单行文本。这里的root是指主窗口对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

codegrabber

如果觉得文章有用,请随意‘投喂

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值