问题描述
我能够运行该程序,但是当它加载时,kivy 窗口是空白的。我不断收到警告,提示 kivy 已多次加载。提前致谢。
[警告] [Lang ] 文件 C:\Users\Eli\PycharmProjects\MedBay\mymain.kv 被多次加载,你可能有不想要的行为。
main.py
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager,Screen
class WindowManager(ScreenManager):
pass
class MainWindow(Screen):
pass
class SecondWindow(Screen):
pass
kv = Builder.load_file("mymain.kv")
class MyMainApp(App):
def build(self):
return kv
if __name__ =="__main__":
MyMainApp().run()
kv 文件(名为 mymain.kv)
WindowManager:
MainWindow:
SecondWindow:
<MainManager>:
name: "Main"
GridLayout:
cols: 1
GridLayout:
cols: 2
Label:
text: "password:"
TextInput:
id: passw
multiline: False
Button:
text: "Submit"
on_release:
app.root.current = "second"
<SecondWindow>:
name:"second"
Button:
text: "Go Back"
on_release:
app.root.current = "Main"
解决方法
kv = Builder.load_file("mymain.kv")
class MyMainApp(App):
应用程序在运行时会自动加载一个与应用程序同名的 kv 文件(省略任何尾随 App
并转换为小写)。因此,您的 kv 文件被加载了两次。
有关详细信息,请参阅 the documentation。