Python定期刷新OWM中的数据

时间:2018-03-09 17:57:12

标签: python kivy openweathermap

我使用Kivy和OWM构建了简单的天气应用程序,但我遇到了一个问题。虽然程序工作正常,但我仍然遇到了从OWM重新加载(再次获取)数据的问题。我曾尝试time.sleep(),但后来我不知道如何让应用程序保持开放状态。我没有在互联网上找到任何东西,我尝试谷歌搜索,但我能找到的一切只是事件处理行动。我的猜测是使用某种定时器设置为2分钟来调用该功能,但那我如何刷新Kivy应用程序?所以我希望每2分钟左右运行一次“owm.get_weather()”。希望你明白。感谢帮助 :) 附:我忘了我的代码.. https://github.com/ApplePie420/OWMapp/blob/master/main.py

1 个答案:

答案 0 :(得分:0)

kivy有一个Clock对象,您可以使用该对象为以后安排事件。

from kivy.clock import Clock

class MyApp(App):
    # ...

    def build(self):
        Clock.schedule_interval(self.update_data, 120)

    def update_data(self, *dt):
        # put here your code to load the data
        w = owm.get_weather()
        self.windLB = w.get_wind()['speed']
        # etc...