Python TKinter 多个操作

4 投票
2 回答
608 浏览
提问于 2025-04-17 08:33

我在表单上有两个按钮,当我按下其中一个按钮时,它会保持被按下的状态,同时整个界面会变得无响应,直到按钮1的操作完成。在我的情况下,按钮1会打开一个新的xterm窗口,而按钮2想要打开另一个新的xterm窗口,但在我关闭按钮1打开的xterm窗口之前,整个图形界面都无法操作。 这是为什么呢? 谢谢,我才刚开始使用TKinter,轻点我哦 :)

2 个回答

0

还有一个类似的解决办法是,在一些消耗资源比较多的循环或函数里面运行几次

root.update()

。这个方法比'update_idletasks()'要激进一些,所以在使用之前要确认它是否和你的图形界面设置或者整体脚本结构兼容。

'root'当然是用Tkinter生成的窗口或表单的名字。还有要注意的是,.update()的作用不仅仅是“刷新”图形界面。

4

Tkinter 是一个图形界面库,它在一个线程里运行。这意味着当你按下按钮时,后面的命令可能会执行得很慢,这样就会导致 Tkinter 的界面卡住,直到这个命令执行完毕。

如果可以的话,解决办法是把这个命令拆分成更小的部分,比如用一个循环,然后经常调用 update_idletasks(),这样可以让 Tkinter 的界面及时更新。

如果这样做不行,那就需要 开启一个新线程,这样就不会阻塞 Tkinter 的主事件循环了。

撰写回答