【问题标题】:Is there any mode to update a kivy window individually?是否有任何模式可以单独更新 kivy 窗口?
【发布时间】:2020-11-24 03:16:06
【问题描述】:

我有一个 kivy 窗口,我需要在代码中旋转一个重复循环“While”,但正如预期的那样,“While”会停止窗口的自动更新,并因此锁定它。 例如:

--- "loop window" ---


var = 0
while var <= 100:
     var += 1
     print(var)


--- "end of loop" ---

问题是程序必须等待循环结束,这是锁定在窗口中。我知道在 Tkinter 中有一个函数 Youroot.update(),它在调用时更新窗口,我想知道 kivy 是否也拥有,或类似的东西。请:)

【问题讨论】:

    标签: python-3.x loops kivy


    【解决方案1】:

    在 Kivy 中,您不应该在主线程上运行这样的循环,所以只需在另一个线程上运行它(参见 threading)。如果您需要从该线程更改 kivy 显示中的某些内容,请使用 Clock.schedule_once() 在主线程上安排该位。

    【讨论】:

    • 这是一个解决方案,但在这种情况下我遇到了 Thread 的问题,因为我无法完全控制循环。例如,当我尝试在循环期间关闭窗口时,它会完全挂起。我只是想要一种使用内置代码更新每次重复的方法。感谢关注!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 2012-05-09
    • 2011-04-25
    • 1970-01-01
    相关资源
    最近更新 更多