我已经编写了一个 GUI,并且在某些时候,一个框架作为大型机的子级打开,并且打开另一个框架的功能应该只在该框架关闭时继续。
我只是不明白为什么这不起作用:
def ShowFrame(completeEvent):
frame = MyFrame(self, completeEvent, ...)
frame.Show()
self.completeEvent = threading.Event()
thread = threading.Thread(target=ShowFrame, args=(self.completeEvent,))
thread.start()
self.completeEvent.wait()
运行此示例会导致大型机冻结,并且永远不会出现“MyFrame”。似乎线程没有启动,甚至等待完成事件,或者它已启动但没有到达启动命令......我只是不明白。通常 MyFrame 应该出现,当我关闭它时,会设置 completeEvent 并且 mainFrame 继续。我也尝试过 wx.CallAfter,但这也无济于事......有人可以告诉我如何让大型机等到另一个框架关闭而不使其成为对话框或使用 makemodal 或类似的东西吗?