gpt4 book ai didi

python - 是否可以在 kivy 中使用基于文件夹的结构?

转载 作者:行者123 更新时间:2023-12-05 05:07:55 25 4
gpt4 key购买 nike

我正在尝试制作一个应用程序。我已经让它工作,我的所有文件都在同一个文件夹中,但它变得非常困惑,我想将我的文件分成结构的单独文件夹:Start、PreloginFirebaseLoginScreen`。那么我在 kivy 中尝试做的事情是可能的吗?

我试过 #: import name x.y.z as the pointer where x is the folder name, y is the name of kv-file and z is the class in kv-file 我想导入,但我得到了很多奇怪的错误当我尝试这样做时。我几乎已将每个文件夹和所有内容添加到我的 PYTHONPATH,但没有任何效果。

开始包含main.pymain.kv,其中main.kv然后指向screenmanger中``预登录。 Prelogin 包含一些文件,这些文件由有关应用程序的标签和文本组成,然后指向 FirebaseLoginScreen 中的屏幕管理器。 FirebaseLoginScreen 包含许多用于登录系统的文件。

最佳答案

是的,我会给你这个文件夹结构的例子

-Project\--main.py--main.kv--folder1\----window1.py----window1.kv--folder2\----window2.py----window3.py--folder3\----window4.py----window4.kv

folder\window1.py will be like

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang.builder import Builder
from kivy.uix.widget import Widget

kivy.require("1.11.1")
# Builder is neccesary to work with multiple files
Builder.load_file("folder1/window1.kv")

class login(BoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)

class login_window(App):
def build(self):
return login()

if __name__=="__main__":
aplicacion=login_window()
aplicacion.run()

folder1\window1.kv 无需指定。

ma​​in.py 会像

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang.builder import Builder
from kivy.uix.widget import Widget

# Import files like
from folder1.window1 import login_window
from folder2.window2 import example2_window
from folder3.window3 import example3_window

class manager(BoxLayout):

# Add screens to main
login_widget=login_window()
example2_widget=example2_window()
example3_widget=example3_window()

def __init__(self, **kwargs):
super().__init__(**kwargs)

# Check kv file to understand these lines
self.ids.screen_login.add_widget(self.login_widget)
self.ids.screen_example2.add_widget(self.example2_widget)
self.ids.screen_example3.add_widget(self.example3_widget)

class main(App):
def build(self):
return manager()

if __name__ == "__main__":
main().run()

ma​​in.kv 就像(它有 ScreenManager!)

#:kivy 1.11.1
<manager>:
id: main_window

ScreenManager:
id: scrn_mngr_main

Screen:
id: screen_login
name:'screen_login'
Screen:
id: screen_example2
name:'screen_example2'
Screen:
id: screen_example3
name:'screen_example3'

现在,要控制程序流程,您需要在 window1.py

中添加这些行
        self.parent.current='screen_login'
self.parent.current='screen_example2'
self.parent.current='screen_example3'

改编自关于 Youtube 的教程的 3 个视频

关于python - 是否可以在 kivy 中使用基于文件夹的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58682138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com