【问题标题】:Run a python function in parallel from kivy app and update the label从 kivy 应用程序并行运行 python 函数并更新标签
【发布时间】:2019-01-22 05:26:48
【问题描述】:

我需要从 python fileA 运行一个函数,它将更新 kivy 应用程序中的标签。

例如,在 python fileA 中,我正在运行一个扫描仪功能,它基本上首先初始化传感器,然后开始扫描。然后在扫描完成后,它再次开始扫描。基本上是一个永无止境的循环。

现在在 kivy 中,如果我通过 from fileA import scFunscFun.init() 运行该函数,init 函数将启动但 UI 获取被阻止。

扫描完成后,如何并行运行该函数并更新 kivy 应用中的标签。

【问题讨论】:

  • 你能放上你的代码吗?您尝试过其他线程吗?
  • 这是完全相同的代码,stackoverflow.com/questions/54294930/…,但我在下面添加了另一个函数。另一个文件中的函数基本上是在树莓派中读取'/dev/ttyUSB0。附加信息:我仍然无法更新其他问题中的标签。

标签: python kivy raspberry-pi3 kivy-language


【解决方案1】:

只需使用线程库在单独的线程中运行来自 kivy 类(容器)的函数。时钟用于不会阻塞主线程的简单任务。它实际上是主线程。请求被阻塞。

我的建议是,当我修改您提到的代码时,在您的容器盒布局中执行所有逻辑。它是所有的父级,您可以从那里访问所有小部件。

也许最好是时钟调度,它会在间隔中运行函数,在线程中运行你想要的函数。

【讨论】:

    猜你喜欢
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 2019-05-15
    • 2014-09-12
    相关资源
    最近更新 更多