Просто для иллюстрации комментария от @Michael Butscher и ответа от @Dan AS
Вы можете использовать sys
и traceback
, чтобы поймать и отобразить событие в wx.MessageDialog
import wx
import sys, traceback
def my_message(exception_type, exception_value, exception_traceback):
msg = "Oh no! An error has occurred.\n\n"
tb= traceback.format_exception(exception_type, exception_value, exception_traceback)
for i in tb:
msg += i
dlg=wx.MessageDialog(None, msg, str(exception_type), wx.OK|wx.ICON_INFORMATION)
dlg.ShowModal()
dlg.Destroy()
sys.excepthook = my_message
class MyFrame(wx.Frame):
def __init__(self, parent, id=wx.ID_ANY, title="", size=(360,100)):
super(MyFrame, self).__init__(parent, id, title, size)
self.panel = wx.Panel(self)
self.panel.Bind(wx.EVT_KEY_DOWN, self.OnKey)
self.Show()
def OnKey(self, event):
print ("alpha" + 1)
if __name__ == "__main__":
app = wx.App()
frame = MyFrame(None,title="Press a key")
app.MainLoop()