我想问一下这三段代码(kv语言)之间有什么区别,以及为什么区分它们是有意义的:
1)
Location:
<Location@BoxLayout>:
orientation: 'vertical'
...
2)
BoxLayout:
orientation: 'vertical'
...
3)
<Location@BoxLayout>:
orientation: 'vertical'
...
如果我理解正确,我们会使用&lt;&gt;制定规则,课堂,为未来重复使用的东西。如果我们不使用&lt;&gt;这是一次性的事情。我可能在这里完全错了.. 无论如何,在第一个例子中,我们是否添加了“位置:”以便将来或其他原因轻松引用它?
答案 0 :(得分:3)
<Location@BoxLayout>:
这是一个动态类,没有相应的python类声明。
BoxLayout:
orientation: 'vertical'
这是根小部件定义。如果kv文件是应用程序自动加载的文件,它将自动用作应用程序的根窗口小部件,如果您手动加载kv文件,它将由Builder.load_file
或Builder.load_string
返回。这些方法。
您不包含主要类型的规则:
<SomeWidget>:
...
这为已在python中声明的窗口小部件类定义了一个规则,例如:你的一个python文件中的class SomeWidget(Widget)
。规则的内容将应用于该窗口小部件的每个实例。
主要记录here。