dialogues wxPython
-
11-09-2019 - |
Question
Je suis en train d'écrire une classe wxPython qui affiche les boîtes de dialogue d'erreur. Voici mon 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()
Comment modifier les icônes par défaut utilisés pour les groupes personnalisés ?? J'ai essayé de les remplacer par wx.Icon mais cela n'a pas fonctionné. Sont des boîtes de dialogue dans wxPython limité aux icônes que j'ai utilisé ci-dessus? Sous Mac OS X, ils ne semblent pas afficher correctement.
La solution
Les arguments comme wx.ICON_ERROR
ou wx.ICON_EXCLAMATION
ne sont pas de véritables icônes, mais plutôt des drapeaux entiers pour le constructeur de wx.MessageDialog
. Ces boîtes de dialogue de message sont rendus nativement avec les appels système d'exploitation, de sorte qu'ils regardent différemment par exemple sous Windows et Mac OS X.
wxWidgets a été conçu pour API Windows, les arguments de MessageDialog
ressemblent étroitement à l'API Windows MessageBox drapeaux fonction de style (MB_ICONERROR
, MB_ICONEXCLAMATION
, etc.).
Si vous souhaitez utiliser vos propres icônes pour les boîtes de dialogue, il vous suffit d'implémenter votre propre classe de dialogue de message, en se basant sur wx.Dialog
.