python - 为 Tk().iconbitmap() 使用类似对象的文件

标签 python tkinter py2exe

我正在使用 Tkinter 编写一个程序,该程序最终将使用 py2exe 编译成一个 exe。我想包含一个图标以供在 Windows 上使用。它将与我打包为 exe 的图标相同。有没有办法通过定位 exe 文件或使用类似文件的对象将图标包含在 Tkinter 中?我知道win32api可以找到当前正在运行的exe文件,但我相信py2exe会将原始文件提取到temp,然后运行它,所以无法找到原始exe文件。我也想过将它放在一个包含文件夹中,但我不知道 cwd 是否会为此设置正确。提前感谢您的帮助!

最佳答案

Tk 图像有一个 -data 选项,它可以让你在代码中嵌入图像。您只需要对图像进行 base64 编码。我认为图像最初必须是 GIF 格式。

这是一个工作示例:

import Tkinter as tk
root = tk.Tk()
data = '''R0lGODlhIAAgALMAAAAAAAAAgHCAkC6LV76+vvXeswD/ANzc3DLNMubm+v/6zS9P
          T6Ai8P8A/////////yH5BAEAAAkALAAAAAAgACAAAAS00MlJq7046803AF3ofAYY
          fh8GIEvpoUZcmtOKAO5rLMva0rYVKqX5IEq3XDAZo1GGiOhw5rtJc09cVGo7orYw
          YtYo3d4+DBxJWuSCAQ30+vNTGcxnOIARj3eTYhJDQ3woDGl7foNiKBV7aYeEkHEi
          gnKFkk4ciYaImJqbkZ+PjZUjaJOElKanqJyRrJyZgSKkokOsNYa2q7mcirC5I5Fo
          fsK6hcHHgsSgx4a9yzXK0rrV19gRADs=
       '''
img = tk.PhotoImage(data=data)
label = tk.Label(image=img)
label.pack()
root.mainloop()

关于python - 为 Tk().iconbitmap() 使用类似对象的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4211064/

相关文章:

python tkinter选项菜单帮助-对象没有属性 '_root'

python - Windows Server 无法执行 py2exe 生成的应用程序

python - csv.reader 错误解析文件

python - 如何导入与系统模块同名的用户模块?

python - 对 tensorflow 变量的切片分配

Python Tkinter : Tree selection

Python 错误 - 不受支持的类型错误 : item 1 in _argtypes_ passes a union by value,

python - 通过 Argmax 沿另一个数组的轴屏蔽一个 2D Numpy 数组

python-2.7 - 将整个文件夹复制到 setup.py 文件中

c# - 有没有人将 rpy2 与 py2exe 一起使用?