Python Kivy-将对结构的引用解析到屏幕
还在这里学习Python和Kivy,继续从问题开始,我对解析数据结构(字典)到屏幕有点困惑 将所述数据结构解析到屏幕的最佳方式是什么Python Kivy-将对结构的引用解析到屏幕,python,screen,kivy,Python,Screen,Kivy,还在这里学习Python和Kivy,继续从问题开始,我对解析数据结构(字典)到屏幕有点困惑 将所述数据结构解析到屏幕的最佳方式是什么 from kivy.lang import Builder from kivy.uix.screenmanager import ScreenManager, Screen from kivy.uix.relativelayout import RelativeLayout from kivy.properties import NumericProperty
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')
self.testStructTable = testStructTable
sm = ScreenManager()
# This line here to parse the data structure?
sm.add_widget(MainScreen(name='MainScreen'), testStructTable)
self.add_widget(sm)
Clock.schedule_interval(MainScreen.update_test_val(testStructTable), 1 / 60)
class MainScreen(Screen):
testVal = NumericProperty(0)
def __init__(self, **kwargs):
super(MainScreen, self).__init__(**kwargs)
# would like to parse the testStructTable here?
# self.testStructTable = testStructTable
def update_test_val(dt, self):
self.testVal = testStructTable['testVal']
通过在屏幕上设置一个setter来实现这一点:
class TestWidget(RelativeLayout):
def __init__(self, testStructTable, **kwargs):
super(TestWidget, self).__init__(**kwargs)
Builder.load_file('test.kv')
self.testStructTable = testStructTable
screen = MainScreen(name='MainScreen')
screen.set_table(self.testStructTable)
sm = ScreenManager()
sm.add_widget(screen)
self.add_widget(sm)
Clock.schedule_interval(MainScreen.update_test_val, 1 / 60)
class MainScreen(Screen):
testVal = NumericProperty(0)
testStructTable = {}
def __init__(self, **kwargs):
super(MainScreen, self).__init__(**kwargs)
def set_table(self, testStructTable):
self.testStructTable = testStructTable
def update_test_val(self, dt):
self.testVal = self.testStructTable['testVal']
虽然如果有人有一个更好的方法来做这件事,我会很感兴趣,看看如何可以做到这一点