Python 使用DictProperty时出现Kivy KeyError
我一直在尝试调试我的一个自定义小部件,但我不断收到相同的错误:Python 使用DictProperty时出现Kivy KeyError,python,kivy,Python,Kivy,我一直在尝试调试我的一个自定义小部件,但我不断收到相同的错误: KeyError: 'page_text' 以下是我制作的重新创建此bug的测试应用程序的文件: Python文件: import kivy from kivy.properties import StringProperty, DictProperty from kivy.uix.label import Label from kivy.app import App from kivy.lang import Builder B
KeyError: 'page_text'
以下是我制作的重新创建此bug的测试应用程序的文件:
Python文件:
import kivy
from kivy.properties import StringProperty, DictProperty
from kivy.uix.label import Label
from kivy.app import App
from kivy.lang import Builder
Builder.load_file('test.kv')
class MultC(Label):
chapter = StringProperty()
page = StringProperty()
data = DictProperty()
def __init__(self, **kwargs):
super(MultC, self).__init__(**kwargs)
print(self.chapter)
print(self.page)
self.data = {"chapter_text": self.chapter, "page_text": self.page}
print(self.data)
class MainApp(App):
def build(self):
return MultC()
MainApp().run()
我的千伏:
<MultC>:
chapter: "test"
page: "test2"
BoxLayout:
orientation: 'vertical'
Label:
text: root.data["chapter_text"]
Label:
text: root.data["page_text"]
:
第章:“测试”
第页:“测试2”
盒子布局:
方向:“垂直”
标签:
text:root.data[“chapter_text”]
标签:
text:root.data[“page_text”]
如果我定义数据
并给它一个有效的字典,我不明白他们的错误是从哪里来的
感谢您提供的任何帮助…问题是,在解析.kv时,即使是产生错误的字典也是空的。一种可能的解决方案是使用
get()
方法,但这不会实现绑定,但基于正确的语法,其工作原理如下:
<MultC>:
chapter: "test"
page: "test2"
BoxLayout:
orientation: 'vertical'
Label:
text: (root.data).get("chapter_text", "")
Label:
text: (root.data).get("page_text", "")
:
第章:“测试”
第页:“测试2”
盒子布局:
方向:“垂直”
标签:
text:(root.data).get(“chapter_text”,“”)
标签:
text:(root.data).get(“page\u text”,即“”)