gpt4 book ai didi

python - 从线程停止 WxPython 应用程序的主循环需要窗口焦点

转载 作者:行者123 更新时间:2023-11-30 23:37:29 24 4
gpt4 key购买 nike

我有一个命令行实用程序,可以启动和停止 WxPython 应用程序实例。我在线程中启动应用程序,以便我可以继续运行命令以及使用 gui 应用程序。

我的问题是,当我停止应用程序时,控制台会挂起,直到我聚焦应用程序窗口,然后它才会关闭。我不确定为什么应用程序需要焦点才能退出。

应用程序线程如下所示:

class RunAppThread(threading.Thread):
def run(self):
self.app = wx.App(redirect=False)
self.frame = AppWindow(None)
self.app.MainLoop()

def stop(self):
self.app.ExitMainLoop()

相关的 CLI 操作是:

def startapp(self):
self.app = gui.RunAppThread()
self.app.start()

def stopapp(self):
self.app.stop()
self.app.join()

是否有比调用 wx.App.ExitMainLoop() 更好/正确的方法来退出主循环?

最佳答案

调用wx.App.ExitMainLoop后,使用wx.WakeUpMainThread让主线程处理事件。

关于python - 从线程停止 WxPython 应用程序的主循环需要窗口焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15499292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com