当前位置: 首页 > news >正文

Python打包神器pyinstaller和tkinter图形化GUI界面

当我们写好测试工具后,怎么样才能方便其他人使用呢?试想一个不太懂Python的人,如果直接把源代码发给他,他可能一头雾水,他需要配置Python环境,安装编译器,如果有拓展,还需要自己导入包,是不是听起来很麻烦。为了解决这个问题,本文将基于pyinstaller编写一个打包神器,让python源代码即开即用。

# [打包]pyinstaller
# 应用场景:把python源代码打包为exe文件def add_numbers(x, y):return x + ytry:a = float(input("输入第一个数:"))b = float(input("输入第二个数:"))result = add_numbers(a, b)print("两数之和是:{}".format(result))
except ValueError:print("输入有错误")# 打开cmd或者pycharm终端
# 运行pip install pyinstaller,安装
# 在终端输入pyinstaller --onefile 'path'

按照上述操作之后,就会在目录生成一个对应的exe文件,打开即用了

命令行窗口感觉还是不够美观,因此可以做成一个界面,更方便使用:

# tkinter是Python的一个内置GUI库
# 应用场景:提高测试工具的易用性import tkinter as tkdef add_numbers():try:x = float(e1.get())y = float(e2.get())result = x + yl3.config(text=result)except ValueError:l3.config(text="输入数字")# 创建主窗口
window = tk.Tk()
# 命名
window.title("测试工具-加法计算器")
# 设置窗口大小
window.geometry("300x300")
# 主体程序部分,需要两个输入框输入数字,一个按钮用来触发运算,最后需要一个结果显示
# tk支持十多种控件,本次主要用到:
"""
label:标签控件,可以显示文本和位图
Entry:输入控件
Button:按钮控件
"""
# 加数
l1 = tk.Label(window, text="请输入第一个数字")
e1 = tk.Entry(window, width=10)
l2 = tk.Label(window, text="请输入第二个数字")
e2 = tk.Entry(window, width=10)
# 按钮
b = tk.Button(window, text="运行", command=add_numbers)
# 结果
l3 = tk.Label(window, text="结果")
l3.pack()
# pack()用于控件摆放,如果不用的话,只会创建控件,不会显示在GUI界面
l1.pack()
e1.pack()
l2.pack()
e2.pack()
b.pack()# 让主窗口保持显示
window.mainloop()# pyinstaller --onefile --windowed 'path/xx.py'
# --windowed可以不显示命令行窗口


http://www.mrgr.cn/news/31063.html

相关文章:

  • RHCE-第四章:ssh远程连接服务器
  • 计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
  • Three.js 搭建3D隧道监测
  • 「QT」QT5程序设计专栏目录
  • 游戏引擎学习第六天
  • AUTOSAR_EXP_ARAComAPI的7章笔记(2)
  • 使用ultralytics库微调 YOLO World 保持 Zero-Shot 能力
  • 101. 对称二叉树
  • 若依笔记(六):前后端token鉴权体系
  • AV1 Bitstream Decoding Process Specification--[7]: 语法结构语义-3
  • Shader Graph Create Node---Channel
  • 树莓派4B+UBUNTU20.04+静态ip+ssh配置
  • Node-red 某一时间范围内满足条件的数据只返回一次
  • Spring的IOC和AOP
  • sheng的学习笔记-AI-强化学习(Reinforcement Learning, RL)
  • arduino IDE TFT_eSPI库函数的相关函数
  • 23种设计模式,纯简单里面,面试必备
  • 马踏棋盘c++
  • 谈对象第二弹: C++类和对象(中)
  • 梧桐数据库(WuTongDB):SQL Server Query Optimizer 简介
  • 【VUE3.0】动手做一套像素风的前端UI组件库---Button
  • 测试框架研讨
  • OpenCV 2
  • C++ 常用设计模式
  • 小朋友分组最少调整次数
  • 102. 二叉树的层序遍历