我今天才开始学习Kivy。我指的书是使用kv文件。问题是,当我创建多个.kv文件时,而当我导入另一个.kv文件时,它不起作用。请问任何详细的帮助,因为我是一个完整的初学者。谢谢
我已经搜索了很多,并在一些地方尝试过,但是似乎没有任何作用。
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.widget import Widget
from kivy.lang import Builder
class AddLocationForm(BoxLayout):
pass
class WeatherApp(App):
pass
if __name__ == '__main__':
WeatherApp().run()
AddLocationForm:
<AddLocationForm@BoxLayout>:
orientation: "vertical"
BoxLayout:
TextInput:
Button:
text: "Search"
Button:
text: "Current Location"
BoxLayout:
Label:
text: "Hello"
Label:
text: "Awesome"
Label:
text: "World"
我希望它打印字符串,并同时显示按钮。
答案 0 :(得分:0)
使用Kv语言指令include <file>
#:include AddLocationForm.kv
AddLocationForm:
BoxLayout:
Label:
text: "Hello"
Label:
text: "Awesome"
Label:
text: "World"
<AddLocationForm@BoxLayout>:
orientation: "vertical"
BoxLayout:
TextInput:
Button:
text: "Search"
Button:
text: "Current Location"
include <file>
语法:
#:include [force] <file>
包括一个外部kivy文件。这使您可以拆分复杂 小部件放入自己的文件中。如果强制包含,文件将 首先要卸载,然后再次重新加载。例如:
# Test.kv #:include mycomponent.kv #:include force mybutton.kv <Rule>: state: 'normal' MyButton: MyComponent: # mycomponent.kv #:include mybutton.kv <MyComponent>: MyButton: # mybutton.kv <MyButton>: canvas: Color: rgb: (1.0, 0.0, 0.0) Rectangle: pos: self.pos size: (self.size[0]/4, self.size[1]/4)
答案 1 :(得分:0)
您还可以使用Builder
加载kv文件或字符串。
from kivy.lang import Builder
Builder.load_file("kvfile1.kv")
Builder.load_file("kvfile2.kv")