【问题标题】:wxPython dialogswxPython 对话框
【发布时间】:2023-03-15 17:15:01
【问题描述】:

我正在用 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 上,它们似乎无法正确显示。

【问题讨论】:

    标签: user-interface wxpython icons dialog


    【解决方案1】:

    wx.ICON_ERRORwx.ICON_EXCLAMATION 等参数不是真正的图标,而是wx.MessageDialog 构造函数的整数标志。这些消息对话框是通过操作系统调用本地呈现的,因此它们看起来不同,例如在 Windows 和 Mac OS X 上。

    由于 wxWidgets 是为 Windows API 设计的,MessageDialog 参数非常类似于 Windows API MessageBox function 样式标志(MB_ICONERRORMB_ICONEXCLAMATION 等)。

    如果你想使用自己的对话框图标,你只需要实现你自己的消息对话框类,基于wx.Dialog

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多