寻找组织大型kivy项目的好方法

时间:2014-06-26 20:14:28

标签: python oop kivy

我是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

1 个答案:

答案 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()