为什么我不能在 OS X 上更改 tkMessagebox.askyesno() 上的图标?

Why can't I change the icon on a tkMessagebox.askyesno() on OS X?

tkMessageBox.askyesno('Title', 'Message', icon=tkMessageBox.WARNING) OS X 只给了我火箭图标。

我知道 OS X 和 tkMessageBox 图标有些奇怪,因为 tkMessageBox.showerror() 只显示了火箭图标,但 tkMessageBox.showwarning 显示了一个黄色的三角形(中间有一个小火箭)角)

这是一个错误吗?

是否有一些解决方法来获得警告三角形和 Yes/No 按钮,而不必从头开始制作我自己的消息框 window?

我找到了解决方案:

tkMessageBox.askretrycancel(title, message, type=tkMessageBox.YESNO)

似乎可以,但是两个按钮都按下了returnFalse,所以没有任何用处。

tkMessageBox.showwarning(title, message, type=tkMessageBox.YESNO)

也有效 ,但请注意它 return 是 'yes''no',而不是 TrueFalse。不过,这是唯一真正的选择。


如果有人能告诉我它是否是一个错误,我仍然会感兴趣。

您可以使用 icon='warning' 代替 icon=tkMessageBox.WARNING

我刚刚在 Windows 上试过了。抱歉,我没有 OSX 来测试