سؤال

أنا أكتب فئة في 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 تقتصر على الرموز التي استخدمتها أعلاه؟ على Mac OS X، لا يبدو أنهم يعرضون بشكل صحيح.

هل كانت مفيدة؟

المحلول

حجج مثل wx.ICON_ERROR أو wx.ICON_EXCLAMATION ليست أيقونات حقيقية، ولكن بأعلام عدد صحيح wx.MessageDialog البناء. يتم تقديم مربعات حوار الرسومات هذه أصلا مكالمات نظام التشغيل، لذلك تبدو مختلفة على سبيل المثال على Windows و Mac OS X.

كما تم تصميم wxwidgets لنظام التشغيل Windows API، MessageDialog الحجج تشبه عن كثب واجهة برمجة تطبيقات وظيفة messageBox. أعلام نمط (MB_ICONERROR, MB_ICONEXCLAMATION, ، إلخ.).

إذا كنت ترغب في استخدام الرموز الخاصة بك للحوار، فعليك فقط تنفيذ فئة حوار رسالتك الخاصة، واستنادا wx.Dialog.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top