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
輸出
添加回答
舉報