py文件打包主要是使用

pyinstaller -F -w -p (vene文件夹下的lib/site-packages) -i (py同级文件下的ico文件)  py文件

-F:主要是生成单个文件

-w: 主要是打包后,点击exe不弹出命令窗口(时常会报缺少module,所以要将本地环境变量也打包进去,就要用到-p),不是必要命令。不加这个时候默认-c,弹出命令窗口。

-p: 将本地环境变量打包进来。需要主要的是需要将准确完整的路径输入进来,可以找到site-packages直接copy_path。

-i:打包后生成exe文件图标,需要主要的是必须是ico文件。我使用的是ICO图标在线转换_ICO图标制作工具_PNG在线转ICO - ICO吧

可以在线转ico,还是很方便。下面会讲,tkinter的内置图标。

tkinter:主要是做弹窗使用

# -*- coding:utf-8 -*-
import tkinter as tkroot_window =tk.Tk()
# 设置窗口title
root_window.title('弹窗左上角标题')
# 设置窗口大小:宽x高,注,此处不能为 "*",必须使用 "x"
root_window.geometry('400x400')
# root_window.iconphoto(True, tk.PhotoImage(file='logo1.png'))
# 设置主窗口的背景颜色,颜色值可以是英文单词,或者颜色值的16进制数,除此之外还可以使用Tk内置的颜色常量
root_window["background"] = "#F5F5F5"
# 添加文本内,设置字体的前景色和背景色,和字体类型、大小
text=tk.Label(root_window, text='需要展示的数据', anchor="w", justify="left")
# 将文本内容放置在主窗口内
# text.pack(fill='both',expand='yes')
text.pack()
# 添加按钮,以及按钮的文本,并通过command 参数设置关闭窗口的功能
button=tk.Button(root_window,text="知道了",command=root_window.quit)
# 将按钮放置在主窗口内
button.pack(side="bottom")
#进入主循环,显示主窗口
root_window.mainloop()

这其中代码也不用去讲,稍懂一点py的都看的懂

anchor="w", justify="left"这一行主要是将label这里面的文字居左对齐,我觉得还是有必要的。

如果需要居中的话,删除就可以了,默认居中。

*如果需要打包后直接将exe能使用的话,建议不加图标,或者可以使用他默认内置图标。因为打包后,将其移动到其他位置,点击exe会报错。上面说的-i,生成exe后需要将exe文本先移动到ico同一级后,让他自动找到ico图标文件,之后只要将exe发送其他人即可,无需压缩增加其他文件。

下面说说tkinter三种内置图标的方法和其中区别。

  1. iconbitmap 设置窗口图标
  2. tk.call 设置窗口图标
  3. iconphoto 设置窗口图标

一、iconbitmap 设置窗口图标

iconbitmap() 将窗口图标设置为 bitmap。

它的参数必须传入一个ico类型位图,不能为 png 或 jpg 等其他类型,否则图像就会显示失败。

import tkinter as tkwindow = tk.Tk()
window.title('左上角标题名')  # 更改标题名字
window.geometry('327x272')
window.iconbitmap('logo1.ico')   # 更改窗口图标
window.mainloop()

ICO图标在线转换_ICO图标制作工具_PNG在线转ICO - ICO吧

可以点击上面链接去在线转换ico文件

二、iconphoto 设置窗口图标

通过调用iconphoto()方法,我们可以实现将png格式的图像设置为窗口图标。

import tkinter as tkwindow = tk.Tk()
window.title('标题')  # 更改标题名字
window.geometry('327x272')
window.iconphoto(False, tk.PhotoImage(file='logo.png'))
window.mainloop()

在这里,第一参数False 表示该图标图像仅适用于该特定窗口,而不适用于将来创建的 toplevels 窗口;如果设置为True ,则图标图像也将应用于以后创建的所有 toplevels 图像。

三、tk.call 设置窗口图标

tk.call() 方法是 tkinter 到 tcl 解释器的接口,我们可以用 call 方法运行 tcl 命令。

我们需要将图像设置为 tk.PhotoImage 而不是图像本身,否则会出现 tkinter.TclError 错误。

核心就是前面参数不变,将最后的file= 后面的字符串更改为自己想要替换的png类型图片就好。

import tkinter as tkwindow = tk.Tk()
window.title('标题')  # 更改标题名字
window.geometry('327x272')
window.tk.call('wm', 'iconphoto', window._w, tk.PhotoImage(file='logo1.png'))
# 更改窗口图标
window.mainloop()

tkinter设置窗口图标的三种方式

  1. iconbitmap() 只能是ico类型
  2. iconphoto() 支持png,不支持jpg(其他没测试)
  3. tk.call() 支持png,不支持jpg(其他没测试)

pyinstaller+tkinter打包相关推荐

  1. Pyinstaller如何打包多个资源文件(超详细教程)

    有时我们需要将python源程序使用pyinstaller打包成可执行exe发布,而除了我们常用的添加exe图标功能外,很多时候还希望能把各种图片.声音.字体等资源打包到exe中.尤其是在使用&quo ...

  2. PyInstaller指定打包的Python版本

    前言:如果PyInstaller 的打包版本与开发环境的版本不一致,比如打包版本比开发环境的低,就会出现不能Import某个模块的问题.例如:ImportError: cannot import na ...

  3. 学习笔记(42):Python实战编程-pyinstaller程序打包

    将程序打包可以使得所有Windows带有python虚拟机的电脑进行使用,打包的内容有代码加外部资源(如logo图片等) 步骤: 1)创建程序的代码 2)生成配置文件--用于获得打包的资源,将资源保存 ...

  4. Python wxpython篇 | Python生态库之图形用户界面开发库 “wxPython “ 的安装及使用(附. 使用pyinstaller 库打包Python随机点名小程序程序.exe文件)

    全文目录 wxPython 图形用户界面 PyCharm 中安装 wxPython库 PyCharm中将程序打包成 .exe 可执行文件 wxPython 的使用 第一个wxPython 程序 自定义 ...

  5. Python 技术篇-将python项目打包成exe独立运行程序,pyinstaller库打包python代码实例演示

    首先需要安装 pyinstaller 库. pip install pyinstaller 就可以了. exe程序打包步骤 cmd 进入要编译的 python 文件所在的文件夹, 然后pyinstal ...

  6. 【Python】pyinstaller模块打包的exe在windows环境无法使用问题汇总

    问题一:解决pyinstaller打包发布后的exe文件打开控制台闪退的问题 pyinstaller打包发布后的exe文件在自己电脑能够正常使用,但是给到别人的电脑时,打开exe文件却发生闪退,看不到 ...

  7. python中的pyinstaller库_Python(00):PyInstaller库,打包成exe基本介绍

    一.pyinstaller简介 Python是一个脚本语言,被解释器解释执行.它的发布方式: .py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各 ...

  8. pycharm中pyinstaller封装打包多个py文件的过程

    首先在pycharm设置中找到自己的项目, 然后在左下角安装,搜索pyinstaller 点击安装包后即可 安装完毕后,开始封装环节 [Python打包成exe]快速将多个py文件及其他文件打包为ex ...

  9. mac中pyinstaller 如何打包文件夹内文件

    第一,在终端中打开,找到py文件的路径,如果直接放在Users用户文件下面,就可以省略这一步,如果像我一样建了很多层文件夹,要找到明确的文件夹位置才可以. 第二,在终端中输入 pyinstaller ...

最新文章

  1. 微信小程序获取验证码倒计时
  2. 事件相机特征跟踪-概率数据关联法
  3. Web Application Stress Tool(WAS)性能测试
  4. Centos6.5下安装java1.7+apache-tomcat7.5
  5. C语言函数集(十七)
  6. 消费者行为模型_市场调查消费者行为研究模型
  7. 2013 2016 年期末考试
  8. 第三次学JAVA再学不好就吃翔(part99)--File类
  9. hive 2.3 mysql_Note23:Hive-2.3.6安装配置
  10. 傲游浏览器如何关闭智能填表 智能填表功能关闭方法
  11. arcgis不闭合线转面_【干货】ArcGIS矢量面转点、点转面,面矢量转点矢量方法讲解,值得学习!...
  12. php 写二维数组,php二维数组怎么写
  13. 【2017】听懂你能看懂的句子
  14. Windows7系统怎么给文件夹加密?
  15. Task.Result卡死问题
  16. 教你几个Excel常用的数据分析技巧!
  17. 14期《掬水月在手,弄花香满衣》1月刊
  18. 笔记本电脑怎样重装系统
  19. LinkedList一定比ArrayList的插入和删除效率高吗
  20. 工业互联网二级节点总体架构

热门文章

  1. java使用腾讯地图根据位置获取经纬度信息
  2. 5G+AR出圈,中国移动咪咕成第33届中国电影金鸡奖全程战略合作伙伴
  3. Cloud Insight 和 BearyChat 第一次合体,好紧张!
  4. JS实现广告顺序轮播和随机轮播四份代码
  5. cosmos源码分析——staking模块(节点管理)
  6. BZOJ4304 : 道路改建
  7. 作为一个十年卷王,告诫你们年轻人应该如何才能认清自己的价值
  8. 客户端开发和服务器端开发哪个有前途?自学跟培训的区别?
  9. 使用正向/逆向/双向三种算法进行分词操作
  10. 这段时间,用棋软,终于把自己的三个号都变成弈天棋缘华山上的风魔了