如何在 Tkinter 中设置窗口图标

Jinku Hu 2024年2月15日
  1. root.iconbitmap 设置窗口图标
  2. tk.call('wm', 'Iconphoto', ) 设置窗口图标的方法
  3. root.iconphoto 设置窗口图标
如何在 Tkinter 中设置窗口图标

我们将介绍在 Tkinter 中设置窗口图标的方法。

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

root.iconbitmap 设置窗口图标

import tkinter as tk

root = tk.Tk()

root.iconbitmap("/path/to/ico/icon.ico")
root.mainloop()

iconbitmap(bitmap) 将窗口/框架控件的图标设置为 bitmapbitmap 必须是一个 ico 类型,不能为 pngjpg 等类型,否则,图像不会显示为图标。

Tkinter 设置窗口图标

上图显示了使用在 iconbitmap 使用 ico 类型。

如果你使用 png 类型,则窗口中显示的图标将为空白,

Tkinter 设置 png 图片类型的窗口图标

tk.call('wm', 'Iconphoto', ) 设置窗口图标的方法

import tkinter as tk

root = tk.Tk()

root.tk.call("wm", "iconphoto", root._w, tk.PhotoImage(file="/path/to/ico/icon.png"))

root.mainloop()

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

当 Tkinter 包装器无法访问某些 tcl/tk 功能时,这很方便。

wm 与窗口管理器通信。

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

root.iconphoto 设置窗口图标

设置窗口图标的另一种方法是使用 root.iconphoto() 方法,它与 tk.call('wm', 'iconphoto', ) 一样,能接受更多图像类型。

import tkinter as tk

root = tk.Tk()

root.iconphoto(False, tk.PhotoImage(file="/path/to/ico/icon.png"))
root.mainloop()

在这里,False 意味着该图标图像仅适用于该特定窗口,而不适用于将来创建的 toplevels 窗口。

如果使用 True 的话,则图标图像也将应用于以后创建的所有 toplevels 图像。

作者: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 创始人。Jinku 在机器人和汽车行业工作了8多年。他在自动测试、远程测试及从耐久性测试中创建报告时磨练了自己的编程技能。他拥有电气/电子工程背景,但他也扩展了自己的兴趣到嵌入式电子、嵌入式编程以及前端和后端编程。

LinkedIn Facebook