pyinstaller+tkinter打包

2023-05-16

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 tk

root_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 tk

window = 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 tk

window = 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 tk

window = 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(其他没测试)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pyinstaller+tkinter打包 的相关文章

  • 如何从 Python 中的多行 Tkinter 文本框读取输入(逐行)?

    通过在 Python 中使用过程编程范式 我编写了一个程序 该程序逐行读取文件 例如 File txt 的输入并打印它 下面是示例 Script import fileinput for line in fileinput input r
  • 如何在多进程内更新 Tkinter 小部件?

    我正在尝试使用进程更新框架 但我无法这样做 如果我不使用进程 框架将使用子元素进行更新 但在使用多进程时则不会 这是我尝试过的 代码是类的一部分 def zx self q print asdadsas lbl Label self myf
  • 如何在调整窗口大小时使 Tkinter 消息展开?

    我正在尝试获取 tkinter 消息小部件 以便在调整窗口大小时使单词移动 现在 窗口是一个小块 文本行是一个丑陋的块 我怎样才能让它扩大 这是我的代码 root Tk Message text This is a Tkinter mess
  • Tkinter:尝试点击离开时窗口闪烁

    我已经尝试这样做有一段时间了 但还没有找到方法 我有一个 tkinter 脚本 当按下按钮时会创建一个弹出窗口 但是 我不希望用户能够从该窗口单击到之前创建的任何窗口 我已经使用 root grab set 进行了此操作 但是没有任何迹象表
  • Python 3 Tkinter 菜单小部件的回调似乎不按顺序

    我在使用 Tkinter 时遇到问题Menu小部件 没有菜单按钮 因此回调似乎不按顺序运行 这里有一个very最小的例子 Python 3 6 5 Windows 7 x64 from tkinter import root Tk popu
  • 无法在 Windows 的多处理环境中“pickle”Tkinter 对象

    我正在尝试创建一个应用程序 其中 Tkinter GUI 由不断获取数据的其他对象更新 我在使用多线程时遇到问题 因此我决定尝试使用多处理模块 我发现您无法在其中运行 Tkinter 窗口multiprocessing Process 这是
  • cx_freeze:在以下目录中找不到可用的init.tcl

    据我所知 cx freeze是唯一能够制作 Python 脚本的应用程序 exe文件 不过 我想做一个 GUIexe在 Python 3 中 冻结一个简单的 Tkinter GUI 并运行 exe 后 出现以下错误 gt tkinter T
  • Python 3 Tkinter:如何在 Tkinter Text 中自动换行文本

    如何在 Tkinter 中对文本进行自动换行Text小部件 wraplength只接受屏幕单位 而不是WORD option Use the wrap WORD选项 这是一个例子 from tkinter import root Tk t
  • PyPandoc 与 PyInstaller 结合使用

    我安装了 PyInstaller 来为我的 python 脚本创建可执行文件 效果很好 我使用 PyPandoc 创建 docx报告 当正常的 python 文件运行时 它也可以正常运行 但不能从 PyInstaller 生成的可执行文件运
  • 使用 Pyinstaller 制作 exe 文件时出现问题(使用 tkinter 和 Custom tkinter 制作的文件)

    我正在尝试使用 tkinter 和自定义 tkinter 制作一个用于数据输入的小型应用程序 代码在 python 中运行良好 我使用它制作了 exe 文件 pyinstaller onefile noconsole try45 py 但在
  • Ttk Treeview:跟踪键盘选择

    这是一个带有 ttk 树视图的 Tk 小部件 当用户单击该行时 会执行某些功能 此处仅打印项目文本 我需要的是以下内容 最初的重点是文本输入 当用户按下 Tab 键时 焦点应该转到第一行 并且应该执行绑定到 Click 事件的函数 当用户使
  • 在加载“cv2”二进制扩展期间检测到递归

    我有一个小程序 在 pyinstaller 编译后返回 opencv 错误 但无需编译即可工作 我在 Windows 10 上使用 Python 3 8 10 Program 导入 pyautogui将 numpy 导入为 np导入CV2
  • 我无法设置顶级标题

    我想为 TopLevel 设置标题 但 TopLevel 显示 Root 的标题 我认为我的下一个脚本与 TkInter 文档中的示例相对应 但给了我不好的结果 你能解释一下 为什么我的设置master title 顶部 in 应用程序顶部
  • Linux 上的 Python 3.6 tkinter 窗口图标错误

    我正在从 Python GUI 编程手册 学习 Python GUI 某项任务要求我通过将以下代码添加到我的配方中来更改窗口图标 Change the main windows icon win iconbitmap r C Python3
  • ipython/jupyter 中的 tk 问题

    我正在尝试编写一个用于从 ipython jupyter 笔记本启动的 gui 但在笔记本中使用 tkinter 时遇到了麻烦 特别是在让 tk gui 窗口正常关闭方面 如何从 jupyter 制作 启动 tkinter gui 然后在不
  • 用于多个窗口的 Tkinter 示例代码,为什么按钮无法正确加载?

    我正在编写一个程序 应该 按一下按钮即可打开一个窗口 按另一个按钮关闭新打开的窗口 我使用类 以便稍后可以将代码插入到更大的程序中 但是 我无法正确加载按钮 import tkinter as tk class Demo1 tk Frame
  • 如何删除选择复选框后出现的 Python3 tkinter ttk.CheckButton 虚线?

    有没有什么方法可以删除使用 默认 主题时单击 ttk Checkbutton 对象的文本时出现的虚线轮廓 例子 from tkinter import from tkinter import ttk master Tk style ttk
  • python 中的 after() 与 update()

    我是 python 新手 开始使用 tkinter 作为画布 到目前为止 我使用 update 来更新我的画布 但还有一个 after 方法 谁能给我解释一下这个函数 请举个例子 两者之间有什么区别 root after integer c
  • 如何结合pytube和tkinter标签来显示进度?

    我正在编写从 youtube 下载歌曲的小程序 使用 pytube 我想添加 python tkinter GUI 以在下载文件时显示百分比值 现在 当我执行代码时 程序首先下载文件 大约需要 60 秒 然后才显示 100 的标签 如果我希
  • Py2exe - Pmw WindowsError:[错误 3]

    我正在尝试使用 Py2exe 构建独立的可执行文件 我已经导入了 Pmw 类 当我运行独立可执行文件时 出现以下错误 Traceback most recent call last File py line 9 in

随机推荐