我是newbe in kivy,我想知道如何在分离的目录中使用应用程序的某些部分。我想轻松地重用代码并在项目中有良好的组织。我不喜欢将所有内容放在一个模块中,就像在很多教程中所示,所以也许有任何方法可以将widget放入模块中。 例如:
-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
答案 0 :(得分:0)
我通常将每个小部件完全放入一个文件中:
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
在哪里找到每个小部件。这在您的App的构建方法中最容易做到:
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()