def kve_preview(self):
r'''Editor?text??Widget???????Preview
Builder.load_string?
1. ?????Kv????????????????
2. ?????Kv????root rule?????None???
?????????????????????????????????????
Label???????????
'''
editor = self.ids.editor # Editor???Widget(CodeInput)
preview = self.ids.preview # Preview??????Widget
editor.text = tab2spaces(editor.text)
preview.clear_widgets() # ???Preview???
Builder.unload_file(self.KV_FILENAME) # ???Kv???????
widget = None
try:
widget = Builder.load_string(
editor.text,
filename=self.KV_FILENAME
)
except Exception as e:
temp = [str(e.__class__)]
temp.extend([str(arg) for arg in e.args])
error_msg = '\n'.join(temp)
else:
if widget is None:
error_msg = r'No root rules.'
if widget is None:
# Widget????????????????????????????Label
# ??????
preview.add_widget(Factory.Label(text=error_msg))
else:
preview.add_widget(widget)
评论列表
文章目录