2009-02-28 23 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_ERRORまたはwx.ICON_EXCLAMATIONのような引数は、実際のアイコンではなく、wx.MessageDialogコンストラクタの整数フラグです。これらのメッセージダイアログは、オペレーティングシステム呼び出しによってネイティブにレンダリングされるので、それらは異なって見える。 wxWidgetsのは、Windows APIのために設計されていたとして

WindowsとMac OS X上で、 MessageDialog引数は密接に、WindowsのAPIに MessageBox functionスタイルフラグ( MB_ICONERRORMB_ICONEXCLAMATIONなど)に似ています。

ダイアログに独自のアイコンを使用する場合は、wx.Dialogに基づいて独自のメッセージダイアログクラスを実装する必要があります。