質問

私は、エラーダイアログを表示し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の中のダイアログは、私が上記使用されるアイコンに限定されていますか?マックOS Xに彼らが正しく表示されていないようです。

役に立ちましたか?

解決

wx.ICON_ERRORまたはwx.ICON_EXCLAMATIONのような

引数はwx.MessageDialogコンストラクタの実際のアイコンではなく、整数フラグではありません。これらのメッセージダイアログがオペレーティングシステムコールをネイティブにレンダリングされたので、彼らは、例えば、異なる見ていますWindowsとMac OS X上でます。

wxWidgetsのは、Windows APIのために設計されたため、

MessageDialog引数は、密接に、WindowsのAPI メッセージボックスに似ています機能のスタイルフラグ(MB_ICONERRORMB_ICONEXCLAMATION、など。)。

あなたがダイアログのために独自のアイコンを使用したい場合は、

、あなただけwx.Dialogに基づか、独自のメッセージダイアログクラスを実装する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top