我在kivy中構建了一個智能鬧鐘。爲了使它成爲模塊化,我使用python代碼(使用佈局小部件作爲基類)構建每個主要小部件(當前時間,當前天氣,警報等),然後使用kv語言文件將這些小部件放置在屏幕上。Python + Kivy:從後端代碼調度事件
其中幾個小部件需要天氣數據,我寫了一個可以使用wunderground API獲取這些數據的類。我遇到的問題是api請求是有限的,並且我不希望每個小部件重複輪詢相同的數據。
我的解決方案是構建一個輪詢定時器數據的單個類(使用kivy Clock類),然後發送「新的天氣數據可用」事件。小部件要麼從事件(或更好)中讀取數據,而是要引用數據後端對象,以便每次都可以請求緩存的數據。
我不知道如何在kivy框架中解決這個問題。
這個後端類在哪裏生活?它是根部件類的一部分,還是「應用」類的一部分?
後端對象是否可以通過控件直接訪問?這是如何完成的?
如何使這些小部件知道我的自定義「new_data」事件,以及如何告訴小部件來聽它?