Ich habe Probleme mit der Analyse einer Datenstruktur zu einem Widget in Kivy, die dann auf die Struktur zugreifen und in der Lage sein würde, einen Wert auf dem Bildschirm kontinuierlich über ein Taktintervall (nicht sicher von einem besseren, dies schon zu tun).Kivy - Parsing Struktur zu Widget
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
Test:
Ich habe die Probleme in der (nicht funktionierenden) Code unten hervorgehoben. kv
Mein Ziel ist es, das TestVal ständig auf dem Bildschirm zu aktualisieren, indem ich auf diese Datenstruktur zugreife, jedoch kann ich das derzeit nicht erreichen, können Sie das bitte raten?
Das gearbeitet hat, danke! Könntest du auch beraten, wie der TestVal ständig auf dem Bildschirm aktualisiert wird? – Rekovni
Die Verwendung von Eigenschaften in Kombination mit dem 'kivy.clock'-Modul ist ein richtiger Ansatz dafür. Eigenschaften in kivy implementieren das Observator-Muster, sodass Änderungen an ihnen sofort in Ihren Widgets widergespiegelt werden können. Ein Beispiel finden Sie [http://www.gurayyildirim.com.tr/kivy-course-5-properties-and-clock-definitions-1191.html]. – Nykakin