【发布时间】:2016-11-09 18:51:23
【问题描述】:
我有一个 wxPython 应用程序。我希望它响应 SIGTERM 和 SIGINT 就像单击“关闭”按钮一样。但是,当我使用signal.signal(signal.SIGTERM, exit_handler) 绑定信号时,它们仅在事件以图形方式发送到主应用程序(单击按钮、打开菜单等)后才会执行。如何避免这种情况并在捕获事件后立即执行句柄?
相关代码部分:
class MyFrame(wx.Frame):
def __init__(self, parent, title):
# ...
self.Bind(wx.EVT_CLOSE, self.signal_handler)
signal.signal(signal.SIGTERM, self.signal_handler)
signal.signal(signal.SIGINT, self.signal_handler)
# ...
app = wx.App(redirect=False, clearSigInt=False)
frame = MyFrame(None, "Hello World")
app.MainLoop()
即使信号调用被移到任何函数之外并在任何 wx 调用之前执行,也会发生这种情况。
【问题讨论】:
标签: python python-2.7 wxpython signals