wxPython Dialoge
-
11-09-2019 - |
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.
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.