我正在测试Kivymd Hot重载。它工作得很好,但当我键入pos_hint: {""}
时,Kivy会给我一个错误。
代码(此代码来自Kivymd文档(:
from kivy.lang import Builder
from kivymd.app import MDApp
KV = '''
#:import KivyLexer kivy.extras.highlight.KivyLexer
#:import HotReloadViewer kivymd.utils.hot_reload_viewer.HotReloadViewer
BoxLayout:
CodeInput:
lexer: KivyLexer()
style_name: "native"
on_text: app.update_kv_file(self.text)
size_hint_x: .6
HotReloadViewer:
size_hint_x: .4
path: app.path_to_kv_file
errors: True
errors_text_color: 1, 0, 0, 1
errors_background_color: app.theme_cls.bg_light
'''
class Example(MDApp):
path_to_kv_file = "kv_file.kv"
def build(self):
self.theme_cls.theme_style = "Light"
return Builder.load_string(KV)
def update_kv_file(self, text):
with open(self.path_to_kv_file, "w") as kv_file:
kv_file.write(text)
Example().run()
错误:
AttributeError: 'str' object has no attribute 'items'
为什么会出现此错误以及如何解决此错误?
我使用的是Python 3.8。感谢
pos_hint
应该是一个字典,但{""}
不是一个合法的字典。如果您想要一个空字典,请使用pos_hint: {}
。