Files
Kivy-Shopping-List/src/main.py

95 lines
2.7 KiB
Python

from os import name
from kivy.app import App
from kivy.properties import ListProperty, StringProperty, BooleanProperty, ObjectProperty
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Label
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.config import Config
from kivymd.app import MDApp
from kivymd.uix.button import MDFlatButton
from kivymd.uix.card.card import MDBoxLayout
from kivymd.uix.dialog import MDDialog
from kivymd.uix.list import OneLineAvatarIconListItem
Config.set('graphics', 'resizable', '0')
Config.set('graphics', 'height', '1000')
Config.set('graphics', 'width', '620')
class ShoppingEntry(OneLineAvatarIconListItem):
def __init__(self, text, **kwargs):
super().__init__(**kwargs)
self.text = text
self.is_checked = False
def delete(self, shopping_entry):
self.parent.remove_widget(shopping_entry)
class AddDialog(MDBoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
class ShoppingEntryScreen(Screen):
add_dialog: MDDialog | None = None
def open_add_popup(self):
if self.add_dialog:
return
# SPRACHE
buttons = [
MDFlatButton(text='Abbrechen', on_release=self.close_add_popup),
MDFlatButton(text='Bestätigen', on_release=lambda args: self.add_shopping_entry("Text"))
]
# SPRACHE
self.add_dialog = MDDialog(
title='Eintrag hinzufügen',
type='custom',
content_cls=AddDialog(),
buttons=buttons
)
self.add_dialog.open()
# *args ist noetig, da weitere Parameter mitgegeben werden, die aber nicht genutzt werden
def close_add_popup(self, *args):
if not self.add_dialog:
return
self.add_dialog.dismiss()
self.add_dialog = None
def add_shopping_entry(self, text):
self.ids['shopping_list'].add_widget(ShoppingEntry(text=text))
self.close_add_popup()
def delete_entry(self):
pass
def navigate_to_settings(self):
self.manager.transition.direction = 'left'
self.manager.current = 'settings'
class SettingsScreen(Screen):
def navigate_to_shopping_list(self):
self.manager.transition.direction = 'right'
self.manager.current = 'shopping'
class ShoppingListApp(MDApp):
def build(self):
self.theme_cls.primary_palette = "Teal"
self.theme_cls.theme_style = "Light"
self.title = 'Shopping List App'
sm = ScreenManager()
sm.add_widget(ShoppingEntryScreen(name='shopping'))
sm.add_widget(SettingsScreen(name='settings'))
return sm
if __name__ == "__main__":
app = ShoppingListApp()
app.run()