我在wxPython中编写了一个显示错误对话框的类。这是我的代码:
import wx
class Error:
def __init__(self, number, string):
self.error_type = number
self.error_message = string
self.choose_error()
def choose_error(self):
if self.error_type == 1:
self.DisplayMessage1()
elif self.error_type == 2:
self.DisplayMessage2()
elif self.error_type == 3:
self.DisplayMessage3()
elif self.error_type == 4:
self.DisplayMessage4()
def DisplayMessage1(self):
dial = wx.MessageDialog(None, self.error_message, 'Info', wx.OK)
dial.ShowModal()
def DisplayMessage2(self):
dial = wx.MessageDialog(None, self.error_message, 'Error', wx.OK |
wx.ICON_ERROR)
dial.ShowModal()
def DisplayMessage3(self):
dial = wx.MessageDialog(None, self.error_message, 'Question',
wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION)
dial.ShowModal()
def DisplayMessage4(self):
dial = wx.MessageDialog(None, self.error_message, 'Warning', wx.OK |
wx.ICON_EXCLAMATION)
dial.ShowModal()
如何更改用于自定义图标的默认图标?我试图用wx.Icon替换它们,但它没有用。 wxPython中的对话框是否仅限于我上面使用的图标?在Mac OS X上,它们似乎无法正确显示。
答案 0 :(得分:1)
wx.ICON_ERROR
或wx.ICON_EXCLAMATION
之类的参数不是真正的图标,而是wx.MessageDialog
构造函数的整数标志。这些消息对话框是在操作系统调用时本地呈现的,因此它们看起来不同,例如在Windows和Mac OS X上。
由于wxWidgets是专为Windows API设计的,因此MessageDialog
参数非常类似于Windows API MessageBox function样式标记(MB_ICONERROR
,MB_ICONEXCLAMATION
等。)
如果您想使用自己的图标进行对话,您只需要基于wx.Dialog
实现自己的消息对话框类。