我有一个我想在我的 kivy 应用程序中使用的刷新功能:
for i in range(7):
num = ((-(i * 2) + 12) + (self.today.weekday() * 2)) % 1
try:
self.top_half_layout.__getattribute__('children')[num].test = list(self.storage.get(date.fromordinal(self.today.toordinal() + i).isoformat()).values())[0]
except KeyError:
print('No Key for this day : refresh method :', date.fromordinal(self.today.toordinal() + i))
这个从“children”属性获取标签对象的过程在我的应用程序的另一部分在我的一个按钮的 on_press 函数中起作用。但我希望这种刷新方法可以放在任何地方。该代码可以正常运行并从存储(json文件)中提取,但它不会更新label.text。我在标签对象上尝试了 texture_update() 并在标签对象的所有父对象上尝试了 do_layout() ,但似乎没有任何更新。这个方法和我的 on_press 方法有什么区别。
注意:我不再拥有有效的 on_press 方法,因为我后来决定刷新功能的实现更适合我的目的。
编辑:我尝试从我的刷新函数中粘贴代码,在该函数中将调用刷新函数,但它也不能在那里工作(尽管我确定我本周早些时候已经让它工作了)。我不知道为什么文本没有显示在实际应用程序上,因为在使用调试器检查标签对象后,文本已更改。