gpt4 book ai didi

python - 在程序休眠时阻止 tkinter 窗口卡住

转载 作者:太空宇宙 更新时间:2023-11-04 09:16:08 24 4
gpt4 key购买 nike

这是我计划中非常重要的部分,我需要尽快整理好,这样任何事情都会有很大的帮助。

我的程序由三个相互导入的模块组成。一个模块包含我正在使用 tkinter 的用户界面。用户在 Canvas 上输入数据,该数据被发送到第二个程序进行处理,然后被发送到第三个模块,其中包含我打算与用户一起逐步完成的算法。

“第一”和“第三”模块可以相互交互,在解释算法的某些时候,我会更改 Canvas 的外观和界面上的一些文本。然后第三个模块应该暂停(我目前正在为此使用基本的 sleep 方法),然后等待(理想情况下它将等待用户按下用户界面上的“下一步”按钮)。正是在这一步中,我的界面决定它要卡住。

有什么办法可以阻止它吗?

非常感谢。

编辑:我找到了解决这个问题的方法。谢谢大家的建议!

最佳答案

调用 time.sleep() 将停止您的程序执行任何操作,直到它完成休眠。您需要 Tkinter 继续处理事件,直到它应该运行您的代码的下一部分。

为此,请将代码的下一部分放在单独的函数中,并让 Tkinter 在准备就绪时调用它。通常,您希望这在用户触发时发生(例如通过单击按钮),因此您需要将其绑定(bind)到一个事件 ( docs )。如果您确实希望它在固定时间后发生,您可以在任何 tkinter 小部件 (docs) 上使用 .after() 方法。

GUI 编程需要一些时间来适应。您不会将代码编写成一系列接连发生的事情,而是编写由用户操作触发的单独代码。

术语说明:如果您的 Python 文件相互导入,您将拥有三个模块,但它仍然是一个程序。谈论“第一个程序”会让人感到困惑。

关于python - 在程序休眠时阻止 tkinter 窗口卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9250624/

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