2
我正在使用kivy,無法獲取kivy界面進行更新。獲取一個kivy應用程序來更新可見界面(無小部件)
我已經基於current_node
這個填充其他變量的字典條目來佈局佈局。理想情況下,佈局應該取決於當前節點。
當我運行應用程序時,current_node
及其所有子變量在MyApp
類中更新,在python代碼中 - 但不在kivy接口上。任何想法爲什麼?
的東西,我已經試過了沒有奏效:
- 創建一個單獨的類佈局(不能動態地改變按鍵的數量)更改
update_node
功能包括MyApp.build()
- (失蹤位置自我)
在此先感謝您的任何建議。
tree = {
'0' : ['Hi!', 'A', 'B'],
'A' : ['Yes', 'AA', 'AB','AC'],
'AA': ['Seneca', 'AAA', 'AAB'],
'AAA': ['Yes', 'AAA', 'AAB'],
'AAB': ['No', 'AAA', 'AAB'],
'AB' : ['Cato', "AA", "AB"],
'AC' : ['Neither'],
'B' : ["No",'BA','BB'],
'BA': ['xx'],
'BB': ['xxx']
}
class MyApp(App):
current_node = '0'
def update_node(self, *args):
self.current_node = args[0]
self.build()
def build(self):
layout = FloatLayout()
child_nodes = tree[self.current_node][1:]
j = len(child_nodes)
# Answer Buttons
for i in child_nodes:
answer_button = Button(
text=tree[i][0],
pos=(100, j*75),
size_hint = (0.8, 0.1),
)
button_callback = partial(self.update_node, i)
answer_button.bind(on_release=button_callback)
layout.add_widget(answer_button)
j -= 1
print(i)
return layout
if __name__ == '__main__':
MyApp().run()
謝謝!這個解釋和例子非常有用。 – Locke