【发布时间】:2014-12-05 19:25:25
【问题描述】:
我有一个 Python 脚本,它对用户文件执行一些密集处理,并且可能需要一些时间。我使用 Kivy 为其构建了一个用户界面,允许用户选择文件、处理模式并在处理过程中向他们显示一些消息。
我的问题是当主 Kivy 循环通过调用底层用户界面时,窗口冻结。
据我了解,解决此问题的正确方法是创建一个单独的进程,将脚本卸载到该进程并将更新发送到用户界面。
但是,我找不到如何执行此操作的示例或任何关于如何将消息从单独线程发送回应用程序的规范。
有人可以举例说明如何正确执行此操作或将我指向与该主题相关的文档吗?
更新:
为了保持程序的可维护性,我想避免从主线程调用处理器循环的元素,而是调用一个返回更新的 GUI 元素的长进程,例如进度条或文本域。看起来这些元素只能从主 kivy 线程修改。如何从外部访问它们?
【问题讨论】:
标签: python event-handling kivy