As I am learning kivy/kivymd these days, my questions might be naive, please pardon me for that. I want to create multiple screens in kivy and the definition of each screen to be placed in separate .kv file. At last, I'm creating a main.kv file which has ScreenManager definition and I want to import all the screens defined to this app. Please guide me on how to do this.
Here is my screen1.kv file
<Screen1>:
name: 'Screen1'
Label:
id: first_screen
text: "Hi I'm The First Screen"
Here is my screen2.kv file
<Screen2>:
name: 'Screen2'
Label:
id: second_screen
text: "Hi I'm The Second Screen"
Here is my main.kv file
#:kivy 2.1.0
#:include libs.kv.screen1.kv
#:include libs.kv.screen2.kv
ScreenManager:
Screen:
name: "main_screen"
BoxLayout:
orientation: "vertical"
Label:
text: "main screen"
Button:
text: "to screen 1"
on_press: app.root.current = "Screen1"
Button:
text: "to screen 2"
on_press: app.root.current = "Screen2"
Screen1:
Screen2:
Please guide on what is the correct way to write main.kv as I'm getting error. Please note, I want to eliminate the python code of ScreenManager.add_widget(Screen1....)
We can create multiple screens defined in different .py files and their .kv definition in separate files. In order to integrate all the files, we can create a main.kv file whose content looks like below:
# import the python files defining the Screens
#: import Screen1 libs.baseclass.screen1.Screen1
#: import Screen2 libs.baseclass.screen2.Screen2
# include the kv files for the other Screens
#: include libs/kvs/screen1.kv
#: include libs/kvs/screen2.kv
ScreenManager:
Screen1:
Screen2:
FInally load this file through Builder in an App.