Python实现GUI计算器(附源码)
作者:川川菜鸟 发布时间:2022-06-07 03:32:47
标签:Python,GUI,计算器
效果
可执行正常加减乘除相关运算,源码已贴,自行测试。
源码
# coding=gbk
"""
作者:川川
@时间 : 2022/11/6 3:10
"""
from tkinter import *
calc = Tk()
calc.title('川川计算器')
operator = ''
def clear():
global operator
operator=''
txt_input.set("")
display.insert(0,'开始计算...')
def button_press(number_or_operator):
global operator
operator = operator+str(number_or_operator)
txt_input.set(operator)
def equal():
global operator
result = float(eval(operator))
txt_input.set(result)
operator=''
txt_input =StringVar(value='开始计算...')
#-----------------DISPLAY-----------------------------------
display = Entry(calc,font =('arial',30),fg='white',bg='green'
,justify='right',bd='50',textvariable=txt_input)
display.grid(columnspan=4)
#------------------row 1--------------------------------------
button7 = Button(calc,padx =30,pady =12,bd=8,fg='black',bg='white',
font=('arial',30,'bold'),text='7',command=lambda:button_press(7)).grid(row=1,column=0)
button8 = Button(calc,padx =30,pady =12,bd=8,fg='black',bg='white',
font=('arial',30,'bold'),text='8',command=lambda:button_press(8)).grid(row=1,column=1)
button9 = Button(calc,padx =30,pady =12,bd=8,fg='black',bg='white',
font=('arial',30,'bold'),text='9',command=lambda:button_press(9)).grid(row=1,column=2)
button_clear = Button(calc,padx =30,pady =12,bd=8,fg='black',bg='green',
font=('arial',30,'bold'),text='C',command=clear).grid(row=1,column=3)
#------------------row 2--------------------------------------
button4 = Button(calc,padx =30,pady =12,bd=8,fg='black',bg='white',
font=('arial',30,'bold'),text='4',command=lambda:button_press(4)).grid(row=2,column=0)
button5 = Button(calc,padx =30,pady =12,bd=8,fg='black',bg='white',
font=('arial',30,'bold'),text='5',command=lambda:button_press(5)).grid(row=2,column=1)
button6 = Button(calc,padx =30,pady =12,bd=8,fg='black',bg='white',
font=('arial',30,'bold'),text='6',command=lambda:button_press(6)).grid(row=2,column=2)
button_plus = Button(calc,padx =34,pady =12,bd=8,fg='black',bg='orange',
font=('arial',30,'bold'),text='+',command=lambda:button_press('+')).grid(row=2,column=3)
#------------------row 3--------------------------------------
button1 = Button(calc,padx =30,pady =12,bd=8,fg='black',bg='white',
font=('arial',30,'bold'),text='1',command=lambda:button_press(1)).grid(row=3,column=0)
button2 = Button(calc,padx =30,pady =12,bd=8,fg='black',bg='white',
font=('arial',30,'bold'),text='2',command=lambda:button_press(2)).grid(row=3,column=1)
button3 = Button(calc,padx =30,pady =12,bd=8,fg='black',bg='white',
font=('arial',30,'bold'),text='3',command=lambda:button_press(3)).grid(row=3,column=2)
button_minus = Button(calc,padx =38,pady =12,bd=8,fg='black',bg='orange',
font=('arial',30,'bold'),text='-',command=lambda:button_press('-')).grid(row=3,column=3)
#------------------row 4--------------------------------------
button_0 = Button(calc,padx =30,pady =12,bd=8,fg='black',bg='white',
font=('arial',30,'bold'),text='0',command=lambda:button_press(0)).grid(row=4,column=0)
button_dot = Button(calc,padx =36,pady =12,bd=8,fg='black',bg='white',
font=('arial',30,'bold'),text='.',command=lambda:button_press('.')).grid(row=4,column=1)
button_divide = Button(calc,padx =36,pady =12,bd=8,fg='black',bg='orange',
font=('arial',30,'bold'),text='/',command=lambda:button_press('/')).grid(row=4,column=2)
button_mult = Button(calc,padx =38,pady =12,bd=8,fg='black',bg='orange',
font=('arial',30,'bold'),text='*',command=lambda:button_press('*')).grid(row=4,column=3)
#------------------row 5--------------------------------------
button_equal = Button(calc,padx =95,pady =12,bd=8,fg='black',bg='green',
font=('arial',30,'bold'),text='=',command=equal).grid(row=5,column=0,columnspan=2)
button_open = Button(calc,padx =35,pady =12,bd=8,fg='black',bg='white',
font=('arial',30,'bold'),text='(',command=lambda:button_press('(')).grid(row=5,column=2)
button_close = Button(calc,padx =38,pady =12,bd=8,fg='black',bg='white',
font=('arial',30,'bold'),text=')',command=lambda:button_press(')')).grid(row=5,column=3)
calc.mainloop()
来源:https://blog.csdn.net/weixin_46211269/article/details/127711872


猜你喜欢
- 对于程序开发新手来说,一个最常见的困惑是测试的主题。他们隐约觉得“单元测试”是很好的,而且他们也应该做单元测试。但他们却不懂这个词的真正含义
- OVER的定义OVER用于为行定义一个窗口,它对一组值进行操作,不需要使用GROUP BY子句对数据进行分组,能够在同一行中同时返回基础行的
- 如果大家只顾开发,对基础知识不了解,在今后的解决问题过程中,也是个大问题,今天小编抽空对基础概念给大家屡一下,用于大家日后学习。Vue.ex
- Numpy支持大量的维度数组和矩阵运算,对数组运算提供了大量的数学函数库!Numpy比Python列表更具优势,其中一个优势便是速度。在对大
- MySQL采用了基于开销的优化器,以确定处理查询的最解方式。在很多情况下,MySQL能够计算最佳的可能查询计划,但在某些情况下,MySQL没
- 本文实例讲述了JavaScript实现隐藏省略文字效果的方法。分享给大家供大家参考,具体如下:<html> <
- 概述WSGI接口包含两方面:server/gateway 及 application/framework。server调用由applicat
- 这篇文章主要介绍了Python hashlib常见摘要算法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 自从腾讯微博上线以来,基本上就开始用了,一直到现在,作为一个开发人员,也看到了腾讯微博一直在不停的改变,也不知道大家有没有发现,腾讯微博提供
- 根据“廖雪峰”的教程进行python学习,计划每天抽出1-2个小时的时间进行充电。Python是著名的“龟叔”Guido van Rossu
- LearningjQuery.com 博客帖子列表的左边有一个很酷的日期,如图:从图中我们看到,“2009”垂直排列在右侧。用Firebug
- 这篇文章主要介绍了python多进程间通信代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- 1. 简述我们在用scrapy爬取数据时,首先就要明确我们要爬取什么数据。scrapy提供了Item对象这种简单的容器,我们可以通过Item
- JWT介绍Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准.该token被设计为
- 前言自动化测试中我们存放数据无非是使用文件或者数据库,那么文件可以是csv,xlsx,xml,甚至是txt文件,通常excel文件往往是我们
- 前言:本文的主要内容是介绍Python中的列表及其方法的使用,涉及到的方法包括对列表元素进行修改、添加、删除、排序以及求列表长度等,此外还介
- 在一些网页应用中,就比如在投票系统中,当我们进行的是多项投票时,我们要求用户最多只能选择几项进行投票,这也是就是说选择复选框的个数最多几个.
- PyTorch中数据读取的一个重要接口是torch.utils.data.DataLoader,该接口定义在dataloader.py脚本中
- 在Web渗透流程的暴力登录场景和爬虫抓取场景中,经常会遇到一些登录表单用DES之类的加密方式来加密参数,也就是说,你不搞定这些前端加密,
- 不管是DRP中的分页查询代码的实现还是面试题中看到的关于分页查询的考察,都给我一个提示:分页查询是重要的。当数据量大的时候是必须考虑的。之前