如何在 Tkinter 中設定視窗圖示

Jinku Hu 2023年1月30日
  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