1 回答

TA贡献1806条经验 获得超5个赞
根本原因 - 看到双打
双倍是由于按文件名约定加载 kv 文件并使用Builder.
例如:使用Builder.load_file('gui.kv'),并且您的 kv 文件名是gui.kv.
片段
class GuiApp(App):
...
def build(self):
self.pickers = Factory.AnotherScreen()
presentation = Builder.load_file("gui.kv")
return presentation
解决方案
该问题有两种解决方案。
方法一
将 App 类重命名GuiApp()为TestApp()
方法二
只要有根规则,例如BoxLayout:在 kv 文件中,就不需要在 App 类中返回任何内容。
删除以下内容:
presentation = Builder.load_file("gui.kv")
return presentation
参考
KV语言 » 如何加载KV
有两种方法可以将 Kv 代码加载到您的应用程序中:
按命名约定:
Kivy 查找与您的 App 类同名的小写 Kv 文件,如果以“App”结尾,则减去“App”,例如:
MyApp -> my.kv
如果此文件定义了一个根小部件,它将附加到应用程序的根属性并用作应用程序小部件树的基础。
按建造者约定:
您可以告诉 Kivy 直接加载字符串或文件。如果此字符串或文件定义了根小部件,它将由以下方法返回:
Builder.load_file('path/to/file.kv')
或者:
Builder.load_string(kv_string)
例子
主文件
from kivy.app import App
class GuiApp(App):
def build(self):
self.pickers = None
if __name__ == "__main__":
GuiApp().run()
gui.kv
#:kivy 1.11.0
Button:
text: 'Hello Kivy'
font_size: 50
输出
添加回答
举报