0
Kivyのウィジェットに対するデータ構造の解析に問題があり、構造にアクセスして画面上の値をクロック間隔で連続的に更新することができますまだこれを行うのがよいと確信している)。Kivy - 構造をウィジェットに構文解析
Iは、以下の(非稼働)コード内の問題を強調している:
main.py
from kivy.app import App
from test import TestWidget
class TestApp(App):
def build(self):
testStructTable = {'randomVal1': 1, 'testVal': 2, 'randomVal2': 3}
# Issue here parsing the table like this?
return TestWidget(testStructTable)
if __name__ == '__main__':
TestApp().run()
test.py
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.relativelayout import RelativeLayout
from kivy.properties import NumericProperty
class TestWidget(RelativeLayout):
def __init__(self, testStructTable, **kwargs):
super(TestWidget, self).__init__(**kwargs)
Builder.load_file('test.kv')
sm = ScreenManager()
sm.add_widget(MainScreen(name='MainScreen'))
self.add_widget(sm)
# Error accessing the table
print self.testStructTable
# Have the update_test_val continuously called
#Clock.schedule_interval(MainScreen.update_test_val(testStructTable), 1/60)
class MainScreen(Screen):
def __init__(self, **kwargs):
testVal = NumericProperty(0)
def update_test_val(self, testStructTable):
# Get testVal from testStructTable
# Something like:
# self.testVal = testStructTable.testVal + 1 ?
self.testVal = self.testVal + 1
テスト。 kv
私の目的は、そのデータ構造にアクセスすることによって、画面上で常にtestValを更新することですが、現在はこれを達成できません。アドバイスをお願いしますか?あなたがtestStructTable
を渡していると、あなたはあなたが明示的に割り当て作るそれまでは存在しないself.testStructTable
にアクセスしようとしているあなたの__init__
方法で
働いています、ありがとう!そのtestValを常に画面上で更新してもらう方法をアドバイスできますか? – Rekovni
プロパティを 'kivy.clock'モジュールと組み合わせて使うのは正しい方法です。 kivyのプロパティはobservatorパターンを実装しているので、それらの変更をウィジェットに即座に反映させることができます。例については、[here](http://www.gurayyildirim.com.tr/kivy-course-5-properties-and-clock-definitions-1191.html)を参照してください。 – Nykakin