This commit is contained in:
Michael S. 2024-06-21 15:18:21 +02:00
parent ba3e29d955
commit 5e5ea4f112
4 changed files with 19 additions and 15 deletions

View file

@ -1,9 +1,15 @@
# Nahrung Analysierung # Nahrungstracker
An example of a minimal Flet app. Tracke deine verbrauchte kcal pro Tag!
To run the app:
![Preview](preview.jpg)
## Build
``` ```
flet run [app_directory] flet build apk
``` ```
_use flet 0.21.2!_
## Todo
[x] History
[ ] Eigene Tags für Essen
[ ] Settings und Tag Tab

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

14
main.py
View file

@ -6,6 +6,7 @@ from random import choice
def get_time(): def get_time():
t = datetime.now() t = datetime.now()
return [t.year, t.month, t.day, t.hour, t.minute, t.second] return [t.year, t.month, t.day, t.hour, t.minute, t.second]
def random_emoji(): def random_emoji():
return choice("🍎🍐🍊🍋🍌🍉🍇🍓🍈🍒🍑🍍🥝🥭🥑🍅🍆🥒🥕🥬🌽🥔🍠🌰🥜🍯🥐🍞🥖🥨🥯🧀🥚🍳🥓🧄🧅🥞🧇🍤🍗🍖🍕🌭🍔🍟🥙🌮🌯🥗🥘🍝🍜🦪🍲🍥🍣🍱🍛🍚🧆🍙🍘🍢🍡🍧🍨🍦🍰🎂🍮🍭🍬🍫🍿🍩🍪🥮🧁🥛🧈🍼☕🍵🍶🍺🍻🥂🍷🥃🍸🍹🍾🧉🧃🧊🧂🥄🍴") return choice("🍎🍐🍊🍋🍌🍉🍇🍓🍈🍒🍑🍍🥝🥭🥑🍅🍆🥒🥕🥬🌽🥔🍠🌰🥜🍯🥐🍞🥖🥨🥯🧀🥚🍳🥓🧄🧅🥞🧇🍤🍗🍖🍕🌭🍔🍟🥙🌮🌯🥗🥘🍝🍜🦪🍲🍥🍣🍱🍛🍚🧆🍙🍘🍢🍡🍧🍨🍦🍰🎂🍮🍭🍬🍫🍿🍩🍪🥮🧁🥛🧈🍼☕🍵🍶🍺🍻🥂🍷🥃🍸🍹🍾🧉🧃🧊🧂🥄🍴")
@ -16,8 +17,7 @@ class Nahrung(ft.UserControl):
self.kjtext = ft.Text("0", size=25) self.kjtext = ft.Text("0", size=25)
self.kcaltext = ft.Text("0", size=30) self.kcaltext = ft.Text("0", size=30)
self.kcaltextfield = ft.TextField(keyboard_type="NUMBER",expand=True,autofocus=True,on_change=self.reseterrorinkcaltextfield,on_submit=self.editkcal) self.kcaltextfield = ft.TextField(keyboard_type="NUMBER", expand=True, autofocus=True, on_change=self.reseterrorinkcaltextfield, on_submit=self.editkcal)
# Initialize history list # Initialize history list
self.historylist = [] self.historylist = []
@ -63,7 +63,8 @@ class Nahrung(ft.UserControl):
self.controls = [self.main_container, self.history_container] self.controls = [self.main_container, self.history_container]
self.load_todays_kcal() self.load_todays_kcal()
def reseterrorinkcaltextfield(self):
def reseterrorinkcaltextfield(self, e=None):
self.kcaltextfield.error_text = "" self.kcaltextfield.error_text = ""
def build(self): def build(self):
@ -73,21 +74,18 @@ class Nahrung(ft.UserControl):
def editkcal(self, e): def editkcal(self, e):
try: try:
emoji = random_emoji() emoji = random_emoji()
print(emoji,ord(emoji))
new_kcal = int(self.kcaltext.value) + int(self.kcaltextfield.value) new_kcal = int(self.kcaltext.value) + int(self.kcaltextfield.value)
self.kcaltext.value = str(new_kcal) self.kcaltext.value = str(new_kcal)
self.kjtext.value = str(round(new_kcal * 4.184, 0)) self.kjtext.value = str(round(new_kcal * 4.184, 0))
self.history.append([emoji, self.kcaltextfield.value, get_time()]) self.history.append([emoji, self.kcaltextfield.value, get_time()])
file_handler.save(self.settings, self.history) # Save the updated kcal value file_handler.save(self.settings, self.history)
self.update_history() self.update_history()
self.reseterrorinkcaltextfield() self.reseterrorinkcaltextfield()
self.kcaltextfield.value = "" self.kcaltextfield.value = ""
self.update() # Update the controls to reflect changes self.update()
except ValueError: except ValueError:
print("error")
self.kcaltextfield.error_text = "\\(*O*)/ nicht verschreiben!!" self.kcaltextfield.error_text = "\\(*O*)/ nicht verschreiben!!"
self.update() self.update()
#pass # Handle invalid input gracefully
def create_appbar(self): def create_appbar(self):
return ft.AppBar( return ft.AppBar(

View file

@ -1 +1 @@
flet==0.22.* flet==0.21.*