寻找有效的方式来组织大型Kivy项目
我刚开始学习kivy,想知道怎么把应用程序的一部分放在一个单独的文件夹里。我希望能方便地重复使用代码,并且让项目的结构更清晰。我不太喜欢像很多教程那样把所有东西都放在一个模块里,所以想知道有没有办法把小部件放到不同的模块里。
-main:
-modules/
-login/
-main.py
-main.kv
-other/
-ohter.kv
-other.kv
-main.py #<- here I want to put widgets from 'login' and 'other'
-main.kv
1 个回答
0
我通常会把每个小部件(widget)放在一个完整的文件里:
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_string('''
<LoginMain>:
Label:
text: 'hi'
Button:
text: 'press me'
''')
class LoginMain(BoxLayout):
...
然后你只需要告诉Kivy在哪里可以找到每个小部件,这可以通过Factory
来实现。在你的应用程序的构建方法中这样做是最简单的:
class MyApp(App):
def build(self):
Factory.register('LoginMain', module='myapp.modules.login.main')
Factory.register('Other', module='myapp.modules.other.other')
return Factory.LoginMain()