使用wxpython在对话框中显示错误

使用wxpython在对话框中显示错误,python,wxpython,Python,Wxpython,我想为我拥有的wxpython应用程序显示一个错误对话框。目前,我正在使用以下代码,这些代码是我在一篇博客文章中发现的,我似乎无法开始工作。我添加了一些代码,我知道这些代码会引发目录名错误,错误会显示在IDE中,但不会像我希望的那样引发错误对话框 try: app = wx.App(False) frame = MyScriptApp(None, "Move Tool") app.MainLoop() except: im

我想为我拥有的wxpython应用程序显示一个错误对话框。目前,我正在使用以下代码,这些代码是我在一篇博客文章中发现的,我似乎无法开始工作。我添加了一些代码,我知道这些代码会引发目录名错误,错误会显示在IDE中,但不会像我希望的那样引发错误对话框

   try:
       app = wx.App(False) 
       frame = MyScriptApp(None, "Move Tool") 
       app.MainLoop()

   except:
       import sys, traceback
       xc = traceback.format_exception(*sys.exc_info())

如@SteveBarnes所指出的,如果您的错误可能在主循环开始之前发生,请使用外部(to
wx
)消息库,如
notify2

import wx
import notify2
try:
    a=wx.App()
    frame = MyFrame(None)
    a.MainLoop()
except:
    notify2.init('MyFrame')
    err = notify2.Notification("MyFrame Error","MyFrame not found")
    err.set_timeout(5000)
    err.show()

如@SteveBarnes所指出的,如果您的错误可能在主循环开始之前发生,请使用外部(to
wx
)消息库,如
notify2

import wx
import notify2
try:
    a=wx.App()
    frame = MyFrame(None)
    a.MainLoop()
except:
    notify2.init('MyFrame')
    err = notify2.Notification("MyFrame Error","MyFrame not found")
    err.set_timeout(5000)
    err.show()

如果希望在GUI中显示,则在消息框中打印。如果在启动主循环之前遇到异常,则显示错误将永远不会显示。如果希望在GUI中显示,则在消息框中打印。如果在启动主循环之前遇到异常,则显示错误将永远不会显示。感谢@Rolf of萨克森。不幸的是,根据我的准备,notify2可能与Windows不兼容。当我尝试使用import notify2时,它会给我一个名为dbus error的no模块。我搜索了这个错误,看起来人们说它只适用于Linux。您必须在windows上工作吗?如果是,您是如何安装dbus的?或者你知道windows替代notify2吗?@wilbev我使用Linux,看看,祝你好运!谢谢萨克森的罗尔夫。不幸的是,根据我的准备,notify2可能与Windows不兼容。当我尝试使用import notify2时,它会给我一个名为dbus error的no模块。我搜索了这个错误,看起来人们说它只适用于Linux。您必须在windows上工作吗?如果是,您是如何安装dbus的?或者你知道windows替代notify2吗?@wilbev我使用Linux,看看,祝你好运!