前言

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章

在我们手机上大家都有一个计算器,对吧

那它这功能是怎么实现的呢?

今天我们在电脑上来实现一个电脑端计算器界面~

开发环境:

  • Python 3.8 / 编译器

  • Pycharm 2021.2版本 / 编辑器

本文所有模块\环境\源码\教程皆可点击文章下方名片获取此处跳转

代码展示

界面设置

1.导入模块

import tkinter as tk

2.实例化一个窗体对象

root = tk.Tk()

3.标题

root.title('计算器')

4.大小以及出现的位置

root.geometry("295x280+150+150")

5.透明度

root.attributes("-alpha", 0.9)

6.背景

root["background"] = "#ffffff"

7.标签

lable1 = tk.Label(root, textvariable=result_num, width=20, height=2, font=('宋体', 20), justify='left', background='#ffffff', anchor='se')

8.布局

lable1.grid(padx=4, pady=4, row=0, column=0, columnspan=4)

9.按钮

button_clear = tk.Button(root, text='C', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: clear())
button_back = tk.Button(root, text='←', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: back())
button_division = tk.Button(root, text='/', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: operator('/'))
button_multiplication = tk.Button(root, text='x', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: operator('*'))button_clear            .grid(padx=4, row=1, column=0)
button_back             .grid(padx=4, row=1, column=1)
button_division         .grid(padx=4, row=1, column=2)
button_multiplication   .grid(padx=4, row=1, column=3)button_seven = tk.Button(root, text='7', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('7'))
button_eight = tk.Button(root, text='8', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('8'))
button_nine = tk.Button(root, text='9', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('9'))
button_subtraction = tk.Button(root, text='—', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: operator('-'))
button_seven        .grid(padx=4, row=2, column=0)
button_eight        .grid(padx=4, row=2, column=1)
button_nine         .grid(padx=4, row=2, column=2)
button_subtraction  .grid(padx=4, row=2, column=3)button_four = tk.Button(root, text='4', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('4'))
button_four.grid(padx=4, pady=4, row=3, column=0)
button_five = tk.Button(root, text='5', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('5'))
button_five.grid(padx=4, row=3, column=1)
button_six = tk.Button(root, text='6', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('6'))
button_six.grid(padx=4, row=3, column=2)
button_addition = tk.Button(root, text='+', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: operator('+'))
button_addition.grid(padx=4, row=3, column=3)button_one = tk.Button(root, text='1', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('1'))
button_one.grid(padx=4, row=4, column=0)
button_two = tk.Button(root, text='2', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('2'))
button_two.grid(padx=4, row=4, column=1)
button_three = tk.Button(root, text='3', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('3'))
button_three.grid(padx=4, row=4, column=2)
button_equal = tk.Button(root, text='=', width=5, height=3, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: equal())
button_equal.grid(padx=4, row=4, rowspan=5, column=3)button_zero = tk.Button(root, text='0', width=12, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('0'))
button_zero.grid(padx=4, pady=4, row=5, column=0, columnspan=2)
button_decimal = tk.Button(root, text='.', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('.'))
button_decimal.grid(padx=4, row=5, column=2)

现在得出界面效果

功能

添加数字

def append_num(i):lists.append(i)result_num.set(''.join(lists))

选择运算符号

def operator(i):if len(lists) > 0:if lists[-1] in ['+', '-', '*', '/']:lists[-1] = ielse:lists.append(i)result_num.set(''.join(lists))

清零

def clear():lists.clear()result_num.set(0)

退格

def back():del lists[-1]result_num.set(lists)

等号

def equal():a = ''.join(lists)end_num = eval(a)result_num.set(end_num)lists.clear()lists.append(str(end_num))

定义一个列表收集输入的内容

lists = []
result_num = tk.StringVar()
result_num.set(0)

最后运行代码,效果如下图

先试试

运算得出结果

尾语

python界面开发案例:制作一个计算器软件相关推荐

  1. 使用python的tkinter模块制作一个计算器

    使用tkinter模块制作的一个简单的计算器 由于刚学这个模块,所以做的不是很好 截图: 点击计算后算式区的值会改成结果,可自行在数字触发的函数中添加数字输入就进行计算回显的功能 代码如下: impo ...

  2. python制作解压工具_使用python制作一个解压缩软件

    python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  3. python编写一个软件-使用python制作一个解压缩软件

    python实现解压缩的重要模块就是――zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  4. python如何制作一个工程软件_使用python制作一个解压缩软件

    python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  5. python如何制作一个工程软件_如何利用python制作一个解压缩软件-Go语言中文社区...

    如何利用python制作一个解压缩软件 python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip ...

  6. 如何利用python制作一个解压缩软件

    文章目录 如何利用python制作一个解压缩软件 安装zipfile模块 编写核心代码 安装tkinter模块 整合代码 安装pyinstaller模块 打包程序为可执行文件 打包程序为可执行文件 如 ...

  7. 【PYTHON】tkinter如何设置界面消失 当制作一个登陆界面时,登陆成功之后,如何让登陆界面本身消失...

    tkinter如何设置界面消失 当制作一个登陆界面时,登陆成功之后,如何让登陆界面本身消失 tkinter如何设置界面消失 当制作一个登陆界面时,登陆成功之后,如何让登陆界面本身消失 1 if que ...

  8. python项目开发案例-Python项目开发案例集锦 PDF 全彩超清版

    给大家带来的一篇关于Python案例相关的电子书资源,介绍了关于Python.项目开发.Python案例方面的内容,本书是由吉林大学出版社出版,格式为PDF,资源大小99.1 MB,明日科技编写,目前 ...

  9. 如何用matlab制作一个小软件

    转:https://www.ttin.top/2018/03/29/TT0012/ 制作一个小软件的方法很多,比如说c++的MFC,本站在之前的第一个MFC文章里就提到过:matlab的GUIDE,在 ...

最新文章

  1. GridView中HyperLinkField的链接使用JavaScript问题
  2. MySQL中authorization_IdentitiServser4 + Mysql实现Authorization Server
  3. linux open()调用的注意事项
  4. 【转】上篇:陈皓谈程序员升级:职业规划就像软件工程
  5. 二进制、八进制、十六进制和十进制的相互转换,原码反码补码计算以及Java中数字的存储
  6. 上顿号符号_上顿号符号_标点符号(1):谈谈顿号的用法
  7. ABAP 引用类型介绍
  8. BUAA 436 孟竹的复习计划(二维树状数组)
  9. 5折交叉验证_交叉验证的方法主要分为哪些?
  10. 2010.2.28 OA 项目组工作报告
  11. 如何选择一个合适的大数据可视化工具
  12. Struts2架构流程
  13. GetLastError错误码大全
  14. [雷霄骅]修改了一个YUV/RGB播放器
  15. windows虚拟化服务器搭建,windows虚拟化服务器搭建
  16. 深度学习中训练迭代次数理解【源码阅读技巧分享】【深度学习循环迭代理解】【for X, y in train_iter:】
  17. 照片去雾怎么操作?学会这招就不用担心雾化了
  18. 灿烂夏日里的翩翩蝴蝶结
  19. Apache Echarts常用图表之柱状图
  20. 项目人生:成长与感悟

热门文章

  1. 图书销售管理需求分析引言部分
  2. typora使用手册 一
  3. 测开:前端基础-html
  4. STM8S003F3P6: Failed to get execution status: SWIM error [30004]: Comm timeout
  5. PDF文件数字签名和加密服务解决方案
  6. 如何用纯 CSS 创作一个晃动的公告板
  7. Verilog移位运算符
  8. 全民直播时代,视频云带来了哪些价值?
  9. 如何用计算机做字库,用自己的字体做电脑字库很简单,只需要耐心写完8890个汉字...
  10. miui10 android 唤醒,小米再次推送MIUI10最新版,修复小爱同学唤醒功能,没理由不升级...