Python/Tkinter:如何像wxPython的Freeze/Thaw一样开启/关闭屏幕更新?

1 投票
1 回答
1153 浏览
提问于 2025-04-16 06:30

Tkinter有没有办法在进行大量屏幕操作时暂时关闭屏幕更新,然后在用户界面更新完成后再打开屏幕更新?很多图形用户界面框架都有这个功能。比如,wxPython提供了“冻结”和“解冻”这两个方法来实现这个功能。Windows的Win32api也支持这个功能,可以通过LockWindowUpdate(hWnd | 0)来实现。不过,搜索“tkinter freeze thaw”和“tkinter lockwindowupdate”似乎没有找到相关的信息。

1 个回答

2

不,Tkinter没有这样的功能。不过,屏幕的更新是通过事件循环来进行的。所以如果你所有的“大量屏幕活动”都在一个方法里进行,那么在这个方法完成之前,屏幕上是看不到任何活动的,只有等这个方法执行完毕,事件循环重新开始后,屏幕才会更新(或者你可以手动调用.update_idletasks()来强制更新)。

撰写回答