在使用 Tkinter 和 TtkBootstrap 的 Linux 上,您可以使用以下命令设置徽标一次:
logo = tb.PhotoImage(file="images/favicon.png")
root.iconphoto(True, logo)
这可确保徽标显示在每个顶层和 messagebox.showerror/info/warning 对话框中。
但是,在 Windows 上,您必须对每个顶级使用
.iconbitmap('images/favicon.ico')
。不幸的是,该图标不会出现在 messagebox.showerror/info/warning 对话框中,并且仅出现 Tkinter 徽标或 Ttkbootstrap 徽标。
Tkinter 中是否有任何功能可以让您在 Windows 上定义一次徽标,更重要的是,确保徽标出现在 messagebox.showerror/info/warning 对话框中?
我试图通过询问 ChatGPT 来找到一些东西,但它不知道,并且互联网上也没有任何相关问题。
.iconphoto(True, logo)
也应该适用于 Windows。
以下是一个例子:
import tkinter as tk
from tkinter import messagebox
import ttkbootstrap as tb
def show_dialog():
messagebox.showinfo("Hello", "Hello World")
def show_window():
win = tb.Toplevel()
win.geometry("300x100")
win.title("Secondary Window")
root = tk.Tk()
logo = tb.PhotoImage(file="lenna.png")
root.iconphoto(True, logo)
tk.Button(root, text="Window", command=show_window).pack(padx=100, pady=30)
tk.Button(root, text="Dialog", command=show_dialog).pack(padx=100, pady=30)
root.mainloop()
结果: