更改Tkinter Messagebox的图标

时间:2015-08-04 16:52:09

标签: 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羽化更改为自定义ico?

2 个答案:

答案 0 :(得分:3)

是的,有这样的选择。假设您的根Tkinter实例名为root,您的import语句为from tkinter import *,您的图像文件名为'ico.gif'

root.tk.call('wm', 'iconphoto', root._w, PhotoImage(file='ico.gif'))

在创建root对象之后和弹出messagebox之前调用此方法。该图标将应用于根对象以及messagebox

答案 1 :(得分:0)

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

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()

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

如果您为根窗口设置了自定义图标,则该相同的图标将被设置为所有其他子窗口(包括 messagebox 模块中的消息框)的标题栏图标。 / p>

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()消息框是警告