0

在 Mac OS 中,tkinter 消息框不会为不同类型的消息框显示不同的图标(警告除外)。错误、信息和问题图标都是“Python Spaceship”图标,并不特定于错误、信息或问题。查看以“Screen Shot ...”开头的附件

在 Windows 中,消息框显示上下文相关图标。见附件 WindowsMessageBoxOutput.jpg

如何在 Mac OS 上加载上下文相关图标?

我用于生成/显示消息框的代码如下:

import tkinter as tk
import tkinter.messagebox as tkmb
from tkinter import Button

def show_message_boxes():
    tkmb.showinfo(title='Info Box', message='Info with info icon', icon='info')
    tkmb.showinfo(title='Info Box', message='Info with error icon', icon='error')
    tkmb.showinfo(title='Info Box', message='Info with question icon', icon='question')
    tkmb.showinfo(title='Info Box', message='Info with warning icon', icon='warning')

    tkmb.showinfo(title='Info Box', message='Info box with info icon', icon='info')
    tkmb.showerror(title='Error Box', message='Error box with default icon', icon='error')
    tkmb.showwarning(title='Warning Box', message='Warning box with default icon', icon='warning')

    tkmb.showinfo(title='Info Box', message='Info box with default icon')
    tkmb.showerror(title='Error Box', message='Error box with default icon')
    tkmb.showwarning(title='Warning Box', message='Warning box with default icon')

window = tk.Tk()

but = Button(window, text ='Click', command = show_message_boxes, width=20, height=10)
but.grid(row=0, column=0)

window.mainloop()

注意:我尝试了各种选项来尝试生成带有图标的消息框(因此上面代码中的各种调用)。

环境

我在 Mac OS 上运行以下命令:

  • 莫哈韦 10.14.6
  • Python 3.7.5
  • tkinter 8.5

图片:

MacOS 消息框 Windows 消息框

4

1 回答 1

0

FWIW,我在以下位置看到相同的行为:

  • 操作系统 10.15.5
  • 蟒蛇 3.8.3
  • tkinter 8.6

在 Windows 和 Linux 上按预期工作,我可以使用“icon”参数覆盖默认的消息框图标类型。

看起来这个问题已经有一段时间了:为什么我不能在 OS X 上更改 tkMessagebox.askyesno() 上的图标?

于 2020-06-12T17:25:27.183 回答