我有一个使用Tkinter的Python GUI。我必须SSH到另一个地方获取数据。我启动一个新线程来做这件事,这样GUI就不会挂起。在此期间,我希望弹出一个屏幕,让用户知道它正在加载。一旦程序完成获取数据,我想关闭加载屏幕。我必须做些什么来让主循环识别线程已经完成?我试图使用该线程来关闭主循环中存在的加载屏幕,但后来我发现这不起作用。
我见过一些不使用gui的生产者消费者模型,它们有while循环。但这对我没有帮助。我也不想下载和安装其他包,但导入是可以的。谢谢你的帮助!
让线程在完成时设置一个标志。让GUI定期检查该标志,并在设置时关闭窗口。
您可以通过创建一个检查标志的函数来检查标志,如果它没有设置,它将使用after
在几百毫秒后再次运行。该窗口不会在线程退出后立即消失,但只要延迟不超过几百毫秒,用户就不会注意到。