最近在练习python开发软件,就开发了一个 客户端版的 计算器。先给大家看一下 做出来的样子
在这里插入图片描述
python版本:3.8 以上
主要是 使用 import tkinter as tk 这个库来实现图形界面开发

代码还是比较简单的:

# 创建主窗口
root = tk.Tk()
root.title("python简单计算器项目练习")  # 设置窗口标题
root.geometry("380x700")  # 设置窗口大小
root.configure(bg="#1e1e1e")  # 设置背景颜色# 显示输入与结果的区域
entry_var = tk.StringVar()  # 字符串变量用于绑定 Entry 内容
entry = tk.Entry(root, textvariable=entry_var, font=("Helvetica", 32),bg="#1e1e1e", fg="white", bd=0, justify='right', relief='flat')
entry.pack(fill="both", ipadx=8, ipady=30, padx=20, pady=(30, 10))  # 布局并设置内边距# 绑定键盘输入事件
root.bind("<Key>", keypress)# 创建按钮的函数,方便重复使用
def create_btn(parent, text, cmd, bg="#2a2d2e", fg="white"):return tk.Button(parent, text=text, command=cmd,font=("Helvetica", 20), bg=bg, fg=fg,relief="flat", activebackground="#444", activeforeground="white",height=2, width=4)# 定义按钮布局和每个按钮的功能
buttons = [[("C", clear, "#d64541"), ("←", backspace, "#e67e22"), ("%", lambda: press("%"), "#3a3f44"), ("/", lambda: press("/"), "#3498db")],[("7", lambda: press("7")), ("8", lambda: press("8")), ("9", lambda: press("9")), ("*", lambda: press("*"), "#3498db")],[("4", lambda: press("4")), ("5", lambda: press("5")), ("6", lambda: press("6")), ("-", lambda: press("-"), "#3498db")],[("1", lambda: press("1")), ("2", lambda: press("2")), ("3", lambda: press("3")), ("+", lambda: press("+"), "#3498db")],[("0", lambda: press("0")), ("0", lambda: press("0")), (".", lambda: press(".")), ("=", equal, "#2ecc71")]
]# 创建按钮区域的容器框架
btn_frame = tk.Frame(root, bg="#1e1e1e")
btn_frame.pack(padx=20, pady=10)# 遍历按钮列表,逐行添加按钮
for r, row in enumerate(buttons):row_frame = tk.Frame(btn_frame, bg="#1e1e1e")  # 每一行一个 Framerow_frame.pack(expand=True, fill="both", pady=4)  # 设置填充和间距for i, (txt, func, *color) in enumerate(row):bg = color[0] if color else "#2a2d2e"  # 如果指定了背景色就用指定的,否则用默认色btn = create_btn(row_frame, txt, func, bg)  # 创建按钮btn.grid(row=r, column=i, sticky="nsew", padx=5, pady=3)  # 放置按钮row_frame.grid_columnconfigure(i, weight=1)  # 平分行内按钮宽度# 启动主事件循环
root.mainloop()

在这里插入图片描述

打包 exe命令 :

安装 :pyinstaller
pip install pyinstaller

在项目根目录下执行
打包命令:

pyinstaller --onefile --windowed  main.py

有兴趣的小伙伴,可以拿去看看,希望能在你编程学习的过程中帮助到你。
完整代码和简单的操作说明已经打包好了。可以获取:
https://wwwoop.com/home/Index/projectInfo?goodsId=91&typeParam=2&subKey=1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/88339.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/88339.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/88339.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp开发小程序,导出文件打开并保存,实现过程downloadFile下载,openDocument打开

uniapp开发小程序&#xff0c;导出文件打开并保存 实现思路 1、调用请求获取到后端接口返回的下载文件的url路径 &#xff08;注意必须是https的路径&#xff0c;域名需要配置在微信小程序后台的合法域名里面&#xff09; 2、使用 uni.downloadFile 方法 &#xff08;下载文件…

vue2中前端实现图片裁剪上传到服务器

在 Vue 2 中实现图片裁剪并上传到服务器&#xff0c;你可以结合使用 Cropper.js 来进行图片裁剪&#xff0c;并通过 Axios 或者其他 HTTP 客户端库将裁剪后的图片上传至服务器。以下是一个基本的实现步骤和示例代码&#xff1a; 步骤 安装依赖&#xff1a;你需要安装 cropperj…

C# 网络编程-关于HttpWebRequest使用方式(二)

项目开发用到数据请求时候&#xff0c;会用的到HttpWebRequest的请求方式&#xff0c;主要涵盖GET、POST、PUT、DELETE等方法 一、HttpWebRequest简介 HttpWebRequest是.NET Framework中用于发送HTTP请求的核心类&#xff0c;适用于构建HTTP客户端。它支持GET、POST、PUT、DE…

git变更记录

目录 wvp-ui -new Dji 10.60.2.175:8000上的编译 个人拉分支 目前约定2025-06-25 wvp-ui -new branch new BASE_URL /new/ ci-cd : wvp-newui Config [Jenkins] 禁 用 10.30.2.8 ssh 10.30.2.8 /home/dualven/wvp-server/deployNewUi.sh Dji 主分支的构建&#xf…

前端如何禁止用户复制?

禁用右键菜单 document.addEventListener(contextmenu, function(e) {e.preventDefault(); });禁用快捷键&#xff08;CtrlC/X/A等&#xff09; document.addEventListener(keydown, function(e) {if (e.ctrlKey && [c, x, v, a].includes(e.key.toLowerCase())) {e.…

阿里云无影:开启云端办公娱乐新时代

阿里云无影云电脑&#xff1a;打破传统束缚&#xff0c;畅享云端自由 在数字化浪潮汹涌澎湃的当下&#xff0c;云计算技术持续革新&#xff0c;为我们的工作与生活带来前所未有的变革。阿里云作为云计算领域的佼佼者&#xff0c;推出的无影云电脑无疑是一颗璀璨的明星&#xf…

Windows 和 macOS 串口调试软件

在 Windows 和 macOS 上&#xff0c;你可以使用以下串口调试软件来查看开发板的打印信息。以下是常见且好用的工具推荐&#xff1a; Windows 推荐工具 PuTTY 免费、轻量级&#xff0c;支持串口&#xff08;COM&#xff09;和 SSH/Telnet下载地址&#xff1a;https://www.putty.…

Redis 的作用及详细分析

网上查询总结了一下Redis相关的信息 记录一下 &#xff0c;有问题的地方&#xff0c;望多加指正&#xff0c;我们共同学习。 什么是Redis Redis是一款内存高速缓存数据库。Redis全称为&#xff1a;Remote Dictionary Server &#xff08;远程数据服务&#xff09;&#xff0c;…

【边缘计算】引论基础

&#xff08;1&#xff09;在不远的未来&#xff0c;将有超过50%的数据需要在网络边缘侧分析、处理与储存。智能互联的网络边缘侧将会面临如下挑战&#xff1a; 联接设备的海量与异构 随着联接设备数量的剧增&#xff0c;网络运维管理、灵活扩展和可靠性保障都面临着巨大挑战。…

SpringBoot中4种登录验证码实现方案

文章目录 详解方案一&#xff1a;基于kaptcha的图形验证码实现步骤 方案二&#xff1a;基于短信验证码实现步骤 方案三&#xff1a;基于Spring Mail的邮箱验证码实现步骤 方案四&#xff1a;基于AJ-Captcha的滑动拼图验证码实现步骤 总结 详解 在Web应用中&#xff0c;验证码是…

基于版本控制+WORM的OSS数据保护:防勒索攻击与法规遵从实践

1. 数据保护的核心挑战与解决方案架构 &#xff08;1&#xff09;现代数据保护的三大矛盾 勒索软件进化 vs 传统备份脆弱性&#xff1a;攻击者已掌握备份系统删除技术&#xff08;如vssadmin delete shadows&#xff09;法规保留要求&#xff08;GDPR第17条&#xff09;vs 技…

混合架构入门:如何选组合恰当的云 + 私有节点?

如果你最近刚开始搭建业务系统&#xff0c;或者准备从传统IDC迁移到云上&#xff0c;你很可能已经被“混合云”、“多云”、“私有部署”这些概念绕得头晕。而今天这篇文章&#xff0c;不会再罗列概念或抄定义&#xff0c;而是站在一个运维工程师、架构规划者的角度&#xff0c…

CDN+OSS边缘加速实践:动态压缩+智能路由降低30%视频流量成本(含带宽峰值监控与告警配置)

1 背景与挑战分析 &#xff08;1&#xff09;流量成本结构剖析 视频业务带宽成本公式&#xff1a; C_{total} \sum_{i1}^{n} (P_{peak_i} T_i R_{region}) C_{req} N_{req}其中 P p e a k P_{peak} Ppeak​ 为区域峰值带宽&#xff08;GB/s&#xff09;&#xff0c; T …

Flink内存配置

通过本文可以解决以下3个问题。 了解flink内存和配置项相关概念。清楚UI中TM和JM各内存组件实际内存值的计算规则。根据实际情况对内存进行调整。 1. Flink进程内存 TM和JM二者均为JVM进程&#xff08;JVM通常分成堆内和堆外两部分&#xff09;。TM和JM的内存定义为进程总内…

最新发布 | “龙跃”(MindLoongGPT)大模型正式发布!龙跃而起,推动中国方案走向全球智能体前沿

在人工智能快速演进的今天&#xff0c;生成式大模型正成为推动技术变革的核心引擎。继语言、图像、视频等领域实现突破之后&#xff0c;下一阶段的技术焦点&#xff0c;正加速向“具身智能”迁移。具身智能强调智能体对物理世界的感知、理解与互动能力&#xff0c;是实现通用人…

【系统分析师】2019年真题:论文及解题思路

文章目录 试题一 论系统需求分析方法试题二 论系统自动化测试及其应用试题三 论处理流程设计方法及应用试题四 论企业智能运维技术与方法 试题一 论系统需求分析方法 系统需求分析是开发人员经过调研和分析&#xff0c;准确理解用户和项目 的功能、性能、可靠 性等要求&#x…

在PHP环境下使用SQL Server的方法

当您处在PHP环境并想使用SQL Server作为数据库服务器时&#xff0c;您需要将SQL Server连接到PHP。这涉及到一些步骤&#xff0c;我们会逐一说明并提供示例以指导你。 1.安装SQL Server驱动&#xff1a; 首先&#xff0c;您需要在PHP环境中安装对应的SQL Server驱动&#xff0…

RISC-V h拓展

https://tinylab.org/riscv-kvm-virt-mode-switch/ https://tinylab.org/riscv-kvm-virt-trap/ 特权模式 指令集中约定用虚拟化模式 V (virtualization mode) 来标记当前是否是在 Guest 系统中运行。V1 表示当前确实运行在 Guest 系统中&#xff0c;V0 则表示不运行在 Guest 中…

HCIA-华为VRP系统基础

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 本篇笔记是根据B站上的视频教程整理而成&#xff0c;感谢UP主的精彩讲解&#xff01;如果需要了解更多细节&#xff0c;可以参考以下视频&#xff1a;…

OSS大数据分析集成:MaxCompute直读OSS外部表优化查询性能(减少数据迁移的ETL成本)

&#xff08;1&#xff09;数据存储与分析分离的痛点 传统架构中&#xff0c;OSS作为廉价存储常与MaxCompute计算引擎分离&#xff0c;导致ETL迁移成本高企。某电商案例显示&#xff1a;每日300TB日志从OSS导入MaxCompute内部表&#xff0c;产生以下问题&#xff1a; 延迟&…