Python 更改Tkinter Messagebox的图标
有没有办法更改tkinter消息框的图标? 这是我的密码:Python 更改Tkinter Messagebox的图标,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,有没有办法更改tkinter消息框的图标? 这是我的密码: from tkinter import * import tkinter.messagebox as messagebox root = Tk() messagebox.showinfo(title='Example',message='This is an example') root.mainloop() 是否有将图标从默认tkinter羽毛更改为自定义图标的选项?是的,有这样的选项。假设您的根Tkinter实例名为root,那
from tkinter import *
import tkinter.messagebox as messagebox
root = Tk()
messagebox.showinfo(title='Example',message='This is an example')
root.mainloop()
是否有将图标从默认tkinter羽毛更改为自定义图标的选项?是的,有这样的选项。假设您的根Tkinter实例名为
root
,那么您的导入语句是来自Tkinter import*的,并且您的图像文件名为'ico.gif'
:
root.tk.call('wm', 'iconphoto', root._w, PhotoImage(file='ico.gif'))
在创建root
对象之后和弹出消息框之前调用此方法。图标将应用于根对象以及消息框
以下是两种可能的问题解决方案:
1。更改标题栏图标
是的,我们可以在tkinter中为标题栏设置自定义图标
代码:
import tkinter as tk
window = tk.Tk()
# change title bar icon
window.iconbitmap('book_2.ico')
window.mainloop()
import tkinter as tk
import tkinter.messagebox as tkmb
window = tk.Tk()
# change title bar icon
window.iconbitmap('book_2.ico')
# same icon is also set for the message box
tkmb.showinfo(title='Info', message='Info message box')
window.mainloop()
注意:使用带有iconbitmap()函数的.ico文件
如果为根窗口设置自定义图标,则该图标将设置为所有其他子窗口(包括messagebox模块中的消息框)的标题栏图标
代码:
import tkinter as tk
window = tk.Tk()
# change title bar icon
window.iconbitmap('book_2.ico')
window.mainloop()
import tkinter as tk
import tkinter.messagebox as tkmb
window = tk.Tk()
# change title bar icon
window.iconbitmap('book_2.ico')
# same icon is also set for the message box
tkmb.showinfo(title='Info', message='Info message box')
window.mainloop()
2。更改消息框内的图标
否您不能设置用于在消息框内显示的自定义图标
但您有四个预设图标选项可供选择,选项包括:
- 错误
- 信息
- 问题
- 警告
您可以通过将上述4个值中的一个指定给图标选项来使用它们
注意:默认图标
showinfo()
messagebox是信息
showerror()
messagebox出错
showwarning()
messagebox是警告
首先,你说的是哪个图标?如果是消息框中的那种火箭
,则没有任何变化。如果你说的是根图标,那么我不知道,因为在这个OSX上,没有显示图标。“羽毛”是出现在Python 3tkinter
应用程序标题栏中的图像。上面的代码可以在Windows上运行,但我没有OSX机器来测试它。@nbro-它看起来根本不像OSX应用程序中出现的那种窗口图标,所以我对它不适用于您并不感到惊讶。但是,它应该适用于OP.:)@TigerhawkT3:可以通过更改根窗口的iconphoto(True,tk.PhotoImage(file='img.png'))
来在macOS上执行此操作。即使我使用“iconbitmap()”,标题图标也不会更改。如果有人知道,还有其他可能的原因吗?我还将在下面的回答中发布我的图片和代码,所以没有办法删除它?