我想使用AddPendingEvent
发送事件。但是,在调用AddPendingEvent
后没有任何反应。以下是一个示例,其中按钮应该向帧发送wx.CloseEvent
。
import wx
class MainFrame(wx.Frame):
def __init__(self):
super(wx.Frame, self).__init__(None, wx.ID_ANY, 'Test')
self.button = wx.Button(self, wx.ID_ANY, 'Close', self.GetClientSize()/2)
self.button.Bind(wx.EVT_BUTTON, self.OnButton)
self.Bind(wx.EVT_CLOSE, self.OnClose)
self.Show()
def OnButton(self, event: wx.CommandEvent):
self.AddPendingEvent(wx.CloseEvent())
def OnClose(self, event: wx.CloseEvent):
self.Destroy()
if __name__ == '__main__':
app = wx.App()
frame = MainFrame()
app.MainLoop()
我还尝试了QueueEvent
或wx.PostEvent
,结果是一样的。
答案 0 :(得分:0)
你应该去PyCommandEvent
并创建&将事件类型为wx.EVT_CLOSE排队,如下所示:
self.AddPendingEvent(wx.PyCommandEvent(wx.EVT_CLOSE.typeId, self.GetId()))