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))
「子」属性からラベル オブジェクトを取得するこのプロセスは、アプリの別の部分で、ボタンの 1 つの on_press 関数内で機能しました。しかし、私はこの更新方法をどこにでも落としたいと思っています。コードは正常に実行され、ストレージ (json ファイル) から描画されますが、label.text は更新されません。ラベル オブジェクトで texture_update() を試し、ラベル オブジェクトのすべての親オブジェクトで do_layout() を試しましたが、何も更新されないようです。このメソッドと私の on_press メソッドで動作していたメソッドの違いは何ですか。
注: 機能していた on_press メソッドはもうありません。後で、更新機能の実装が私の目的に適していると判断したためです。
編集:リフレッシュ関数が呼び出される場所にリフレッシュ関数からコードを貼り付けようとしましたが、そこでも動作しません(今週初めに動作していたことは確かですが)。デバッガーでラベルオブジェクトを調べた後、テキストが変更されたため、実際のアプリにテキストが表示されない理由がわかりません。