حوار Wxpython
-
11-09-2019 - |
سؤال
أنا أكتب فئة في 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
.