2009-02-28 44 views
0

我在wxPython中編寫了一個顯示錯誤對話框的類。這裏是我的代碼: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上,它們似乎不能正確顯示。

回答

1

wx.ICON_ERRORwx.ICON_EXCLAMATION這樣的參數不是真正的圖標,而是wx.MessageDialog構造函數的整數標誌。這些消息對話框通過操作系統調用本地呈現,因此它們看起來不同,例如在Windows和Mac OS X.

隨着wxWidgets的專爲Windows API,MessageDialog參數非常類似於Windows API的MessageBox function風格標誌(MB_ICONERRORMB_ICONEXCLAMATION等)。

如果你想使用自己的圖標進行對話,你只需要實現自己的消息對話框類,基於wx.Dialog

相關問題