time.sleep()在异步函数中无法正常工作

时间:2019-04-21 17:14:59

标签: python kivy

我正在使用Kivy制作GUI。它从网址中提取“静态地图图像”(png)和“反向地理编码字符串”(json)。为此,我使用了kivy内置的 异步urlrequest 库。我的程序从一个.csv文件中获取(经度,纬度)并在屏幕上显示图片和地址详细信息,并且还根据json数据(dict)执行一些内部操作(例如:地址中有多少个单词。 )。有一个“ 下一个 ”按钮,按下后将拾取下一个(经纬度)并投影。现在,我添加了一个“ 自动化 ”按钮,该按钮将迭代(lat,long)并在“ next > '是手动按下的,但是在执行时,屏幕冻结,有时不响应,如果以某种方式执行,则json数据没有时间刷新。

我正在使用 time.sleep()。但这似乎没有用。我已经搜索过了,不知道是否是因为“缓冲”。贝娄是代码的一部分:

def automate(self):
    for i in range(5):)
        self.next('NaN')
        time.sleep(6)

1 个答案:

答案 0 :(得分:1)

您应该使用Clock对象而不是time.sleep()

def automate(self):
    Clock.schedule_interval(self.automate_next, 6)

def automate_next(self, dt):
    self.next('NaN')