python - 更改 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 feather 更改为自定义 ico 的选项?

最佳答案

以下是针对您的问题的两种可能的解决方案:

<强>1。更改标题栏图标

是的,我们可以在tkinter中为标题栏设置自定义图标。

Set custom icon for title bar

代码:

import tkinter as tk
window = tk.Tk()

# change title bar icon
window.iconbitmap('book_2.ico')

window.mainloop()

注意:.ico 文件与 iconbitmap() 函数一起使用

如果您为根窗口设置自定义图标,那么这个相同的图标将被设置为所有其他子窗口的标题栏图标,包括来自messagebox 模块的消息框。

Root window and message box have the same custom icon

代码:

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。更改消息框内的图标

不能设置自定义图标以显示在消息框内。

Message box icon

但是你有四个预设图标选项可供选择,选项是:

  • 错误
  • 信息
  • 问题
  • 警告

4 message box icon options

您可以通过为 icon 选项指定上述 4 个值之一来使用它们。

import tkinter.messagebox as tkmb

tkmb.showinfo(title='Message Box', message='Error message', icon='error')
tkmb.showinfo(title='Message Box', message='Info message', icon='info')
tkmb.showinfo(title='Message Box', message='Question message', icon='question')
tkmb.showinfo(title='Message Box', message='Warning message', icon='warning')

注意:

的默认图标
  • showinfo() 消息框是info
  • showerror() 消息框是错误
  • showwarning() 消息框是警告

关于python - 更改 Tkinter 消息框的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31815007/

相关文章:

python - 更新角色时不会调用 on_guild_role_update 函数

python-3.x - 按降序对两列最频繁的组合进行排序

python - 关闭 TraitsUI 窗口而不单击确定

python - 将数据框 reshape 为多索引

python - pandas 的开发版本给出 importerror : C extension: 'hashtable' not built on python 3. 4 (anaconda)

python - 在 python 上,如何确定单击了哪个按钮

python - 如何突出显示文本小部件的当前行?

python - 滚动条滚动文本小部件,使用网格布局,在 Tkinter

python - 在远程服务器上运行命令以秒为单位查找正常运行时间

Python:按嵌套字典值排序(无类别)