Frage

ich eine Klasse in WxPython schreibe die Fehlerdialoge anzeigt. Hier ist mein Code:

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()

Wie kann die Standardsymbole zu den benutzerdefinierten diejenigen verwendet ändern ?? Ich versuchte, sie mit wx.Icon zu ersetzen, aber es hat nicht funktioniert. Sind Dialoge in WxPython beschränkt dich auf die Symbole ich oben verwendet? Unter Mac OS X scheinen sie nicht korrekt angezeigt werden.

War es hilfreich?

Lösung

Argumente wie wx.ICON_ERROR oder wx.ICON_EXCLAMATION sind nicht real Symbole, sondern ganze Zahl Flaggen für wx.MessageDialog Konstruktor. Diese Meldung Dialoge werden nativ mit dem Betriebssystem Anrufe gemacht, so dass sie anders aussehen z.B. unter Windows und Mac OS X.

Als WxWidgets für Windows-API wurde entwickelt, MessageDialog Argumente ähneln Windows-API MessageBox Funktion Stil-Flags (MB_ICONERROR, MB_ICONEXCLAMATION usw.).

Wenn Sie Dialoge Ihre eigenen Symbole verwenden möchten, müssen Sie nur noch Ihre eigene Nachrichtendialog-Klasse implementieren, auf wx.Dialog stützen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top