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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top