如何替换 Tkinter 应用程序中的图标

It'*_*lem 7 tkinter python-3.x

我在 Windows 10 上使用 Python 3.5.0 并想替换它:

用别的东西。

Atl*_*435 22

如果您没有icon.ico文件,您可以使用ImageTk.PhotoImage(ico)and wm_iconphoto

import tkinter as tk
from PIL import Image, ImageTk

root = tk.Tk()

ico = Image.open('test.jpg')
photo = ImageTk.PhotoImage(ico)
root.wm_iconphoto(False, photo)

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

笔记:

如果默认值为 True,这也适用于所有将来创建的顶层。图像中的数据在调用时被视为快照。

不同OS下的详细实现:

  • 在 Windows 上,图像被打包到 Windows 图标结构中。这将覆盖指定给 wm iconbitmap 的 ico,反之亦然。
  • 在 X 上,图像被排列到 _NET_WM_ICON X 属性中,大多数现代窗口管理器都支持该属性。wm iconbitmap 可以同时存在。建议使用不超过 2 个图标,将较大的图标放在前面。
  • 在 Macintosh 上,这会将 Dock 图标设置为指定的图像。

查看更多

TkVersion 8.6支持的格式tk.PhotoImage(filepath)

  • 巴布亚新几内亚
  • 动图
  • 铂/铂族金属

因此,可以使用文件将代码简化.png为:

import tkinter as tk 
root = tk.Tk() 
photo = tk.PhotoImage(file = 'test.png')
root.wm_iconphoto(False, photo)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)


Ste*_*ers 9

要更改您应该使用的图标,iconbitmap否则wn_iconbitmap我认为您希望将其更改为的文件必须是一个 ico 文件。

import tkinter as tk

root = tk.Tk()
root.iconbitmap("myIcon.ico")
Run Code Online (Sandbox Code Playgroud)

  • 如果在同一目录中,则只需文件名即可。否则将整个文件路径作为字符串。 (2认同)

小智 9

tkinter 的输入

from tkinter import *

app = Tk()
app.title('Tk')
app.geometry('')

app.iconbitmap(r'C:\Users\User\PycharmProjects\HelloWorld\my.ico')
app.mainloop()
Run Code Online (Sandbox Code Playgroud)

pyinstaller的输入

pyinstaller --onefile -w -F --add-binary "my.ico;." my.py
Run Code Online (Sandbox Code Playgroud)