Python-TKinter多操作

2024-05-17 13:08:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我在窗体上有两个按钮,当我按下按钮时,它保持在按下状态,而框架保持无响应状态,直到按钮1的操作完成,在我的例子中,我调用新的xterm窗口,它保持打开状态,并且使用button2我想打开新的xterm,但直到我从button1命令关闭xterm窗口,整个GUI都没有响应。 为什么? 谢谢,我两天前就开始用TKinter了,所以别客气:)


Tags: 命令框架tkinter状态gui窗体按钮例子
2条回答

另一个帮助我的类似解决方案是运行一些

root.update()

在需要大量资源的循环/函数内部。这比“update_idletasks()”更激烈,因此如果它与您的GUI设置和/或常规脚本结构兼容,请小心。在

“root”当然是用Tkinter生成的窗口/窗体的名称。 另外,请注意.update()不仅仅是“刷新”GUI。在

Tkinter在一个线程中工作。因此,当您按下按钮时,回调命令显然在很长一段时间内不会返回。这将导致Tkinter GUI冻结,直到回调命令返回。在

如果可能的话,解决方案是将回调命令分成更小的部分,也许是一个循环,并频繁地调用update_idletasks()以允许Tkinter GUI更新。在

如果这不可能,那么回调命令应该spawn a thread,这样它的执行就不会阻塞Tkinter主事件循环。在

相关问题 更多 >