python - 当python只识别一个.kv文件时如何解决
问题描述
我今天才开始学习 Kivy。我所指的书使用 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.kv
AddLocationForm:
<AddLocationForm@BoxLayout>:
orientation: "vertical"
BoxLayout:
TextInput:
Button:
text: "Search"
Button:
text: "Current Location"
天气.kv
BoxLayout:
Label:
text: "Hello"
Label:
text: "Awesome"
Label:
text: "World"
我希望它打印字符串,并显示按钮。
解决方案
使用 Kv 语言指令,include <file>
片段-weather.kv
#:include AddLocationForm.kv
AddLocationForm:
BoxLayout:
Label:
text: "Hello"
Label:
text: "Awesome"
Label:
text: "World"
片段 - AddLocationForm.kv
<AddLocationForm@BoxLayout>:
orientation: "vertical"
BoxLayout:
TextInput:
Button:
text: "Search"
Button:
text: "Current Location"
输出
Kv 语言 » Lang 指令
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)
推荐阅读
- python - 如何提示用户输入函数的整数,并将其作为字符串消息返回?
- spartacus-storefront - Spartacus 后端 OCC 登录端点更改
- python - Altair:Mark_rule 具有分层刻面的图例,另一个图例复制了图例
- android - 无法检查我的数组内部的文本视图在 Kotlin 中是否可见
- android - RecyclerView list 限制在一个片段,没有限制另一个片段
- flutter - 在 null 上调用了“add”方法:Flutter、SQFlite
- python - 在具有可变列表大小的 datframes 中的列中使用爆炸列表的有效方法
- c++ - 为什么不使用继承来编写C++标准库而不同的容器使用自己的成员函数?
- reactjs - React Hover 显示信息,但在悬停前隐藏
- salesforce - salesforce 更改数据捕获未发送更改事件