使用时钟对象更新 Kivy GUI?

Updating Kivy GUI using clock object?

我在上一个问题中问过关于更新弹出窗口以在按下弹出窗口中的 运行 按钮后说类似 'running' 的内容。问题是 gui 直到进程完成 运行ning 后才真正更新,此时更新弹出窗口毫无意义。

我已经尝试 运行使用单独的线程来连接我的进程,但这会引入各种问题,并且根据我的研究,由于 Kivy 中的线程问题,这可能不值得继续研究。

我想知道是否可以使用时钟对象来安排弹出窗口在单击 'run' 按钮后更新 '.1' 秒,从而达到类似的效果。

这是否真的有效,或者这个时钟对象是否会在我的其他进程完成后才真正创建,再次使其无用。

从功能的角度来看,我的程序运行良好,但我不希望用户在不知道进程正在 运行ning 的情况下被困在纺车上。我很想有一个进度条,但这是一个完全不同的挑战,因为我 运行ning 正在使用不指示进度的基于外部控制台的应用程序。

从这个问题中您可能可以看出,我对 Kivy 和一般的 GUI 开发都是新手。任何帮助将不胜感激。

打开弹出窗口,然后安排运行您的长期任务的功能。

SomePopupClass().open()
Clock.schedule_once(your_long_running_function, 0)

通过为下一帧安排 long 运行ning 函数(这是 0 参数的效果),你给 kivy 时间 运行 它的正常 gui 更新循环,因此您会看到弹出窗口出现在 ui 被阻止之前。

如果您希望 gui 在 运行 时保持响应,则需要为您的长任务使用线程。使用 kivy 执行此操作没有大问题。