Я очень новичок в python, и это мое первое приложение, и я еще многому не научился, поэтому, пожалуйста, не судите меня за неумный код (я пишу почти все в одной куче, извините за который).
Основная идея приложения заключалась в том, чтобы напоминать пользователю о некоторых действиях, например, пить воду, принимать лекарство и видеть все это в календаре (вы увидите это на скриншотах здесь и здесь ), но сначала я хочу сделать часть «Примите лекарство» - она должна рассчитать, сколько дней пользователь должен принимать таблетки, если он / она знает, сколько таблеток у него есть и сколько раз в день они должны их использовать.
Я создал два экрана: главный для отображения объектов и второй для создания этих виджетов. Теперь я хочу заполнить все данные на втором экране и добавить виджет с этими данными на главный экран. Может мне стоит использовать MDCards или списки? Но я понятия не имею, как все это делать.
Следует ли мне создавать базу данных для добавления туда данных, а затем создавать новые виджеты на главном экране в соответствии с этим, и если да, то как? А как динамически создавать и представлять эти виджеты? Может быть, мне нужно создать функцию, которая каким-то образом добавит виджеты на вторую вкладку на главном экране, но где и как я могу это реализовать?
Очень надеюсь на вашу помощь, потому что это мой проект для университетского курса программирования, но мой профессор совсем не хочет помогать студентам, поэтому мне больше не о чем спрашивать.
Так что это main.py
from kivy.core.window import Window
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import Screen, ScreenManager
from kivymd.app import MDApp
class ScreensManager(ScreenManager):
pass
class MainScreen(Screen):
pass
class SecondScreen(Screen):
pass
class MyApp(MDApp):
def __init__(self, **kwargs):
self.title = "Do Not Forget"
self.theme_cls.primary_palette = "Teal"
Window.size = (1080 / 3.4, 2280 / 3.4)
super().__init__(**kwargs)
def build(self):
return ScreensManager()
if __name__ == "__main__":
MyApp().run()
И my. кв
<ScreensManager>:
MainScreen:
SecondScreen:
<MainScreen>:
name: "main_screen"
BoxLayout:
orientation: 'vertical'
MDBottomNavigation:
MDBottomNavigationItem:
name: 'screen1'
text: 'active'
icon: 'note-plus'
MDFloatingActionButton:
pos_hint:{"center_x": .85, "center_y": .075}
icon: 'plus'
md_bg_color: app.theme_cls.primary_color
#this is uncompleted part, doesn't matter for now
#on_release:
# app.root.current = "third_screen"
# root.manager.transition.direction = "left"
MDBottomNavigationItem:
name: 'screen2'
text: 'medicine'
icon: 'pill'
MDFloatingActionButton:
pos_hint:{"center_x": .85, "center_y": .075}
icon: 'plus'
md_bg_color: app.theme_cls.primary_color
on_release:
app.root.current = "second_screen"
root.manager.transition.direction = "left"
MDBottomNavigationItem:
name: 'screen3'
text: 'calendar'
icon: 'calendar'
<SecondScreen>:
name: "second_screen"
BoxLayout:
orientation: 'vertical'
BoxLayout:
orientation: 'vertical'
padding: 20
MDLabel:
text: "Insert your data"
Widget:
MDLabel:
text:"Name of medicine"
MDTextField:
id: name_med
hint_text: "Name"
mode: "rectangle"
Widget:
MDLabel:
text:"How many pills do you have?"
MDTextField:
id: pills_amount
hint_text: "Pills amount"
mode: "rectangle"
Widget:
MDLabel:
text:"How many times a day to take them?"
MDTextField:
id: times_amount
hint_text: "Times a day"
mode: "rectangle"
FloatLayout:
MDFloatingActionButton:
pos_hint:{"center_x": .2, "center_y": .2}
icon: 'arrow-left'
on_release:
app.root.current = "main_screen"
root.manager.transition.direction = "right"
MDFloatingActionButton:
pos_hint:{"center_x": .8, "center_y": .2}
icon: 'check'
md_bg_color: app.theme_cls.primary_color
on_release:
app.root.current = "main_screen"
root.manager.transition.direction = "right"