kivy.factory.FactoryException:未知 class <WindowManager>
kivy.factory.FactoryException: Unknown class <WindowManager>
我不知道为什么,但每次我尝试 运行 我的代码都不起作用,这是代码。
如果你能帮助我,那将是非常有益的。提前谢谢你。
这是 3 个文件的代码。
main.py
from kivy.app import App
from App.Constructor.constructor import Constructor
class MyApp(App):
def build(self):
return Constructor().constr()
if __name__ == '__main__':
MyApp().run()
constructor.py
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager
kv = Builder.load_file('Constructor\constructor.kv')
class WindowManager(ScreenManager):
pass
class Constructor():
def constr(self):
return kv
constructor.kv
#:import Login App.Login
#:import SignUp App.SignUp
WindowManager:
Login:
SignUp:
<Login>:
name: "login"
<SignUp>:
name: "signup"
这是因为您在 python 文件中定义它之前在 kv 文件中使用了 WindowManager
解决方案是在创建 WindowManager
class 之后加载 kv 文件
像这样
1)
class WindowManager(ScreenManager):
pass
kv = Builder.load_file('Constructor\constructor.kv')
或
2)
需要的时候直接加载
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager
class WindowManager(ScreenManager):
pass
class Constructor():
def constr(self):
return Builder.load_file('Constructor\constructor.kv')
我不知道为什么,但每次我尝试 运行 我的代码都不起作用,这是代码。 如果你能帮助我,那将是非常有益的。提前谢谢你。
这是 3 个文件的代码。
main.py
from kivy.app import App
from App.Constructor.constructor import Constructor
class MyApp(App):
def build(self):
return Constructor().constr()
if __name__ == '__main__':
MyApp().run()
constructor.py
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager
kv = Builder.load_file('Constructor\constructor.kv')
class WindowManager(ScreenManager):
pass
class Constructor():
def constr(self):
return kv
constructor.kv
#:import Login App.Login
#:import SignUp App.SignUp
WindowManager:
Login:
SignUp:
<Login>:
name: "login"
<SignUp>:
name: "signup"
这是因为您在 python 文件中定义它之前在 kv 文件中使用了 WindowManager
解决方案是在创建 WindowManager
class 之后加载 kv 文件
像这样
1)
class WindowManager(ScreenManager):
pass
kv = Builder.load_file('Constructor\constructor.kv')
或 2) 需要的时候直接加载
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager
class WindowManager(ScreenManager):
pass
class Constructor():
def constr(self):
return Builder.load_file('Constructor\constructor.kv')