Додаток python kivy для дієтичного різноманіття

додаток

Я вивчаю python kivy і для себе вирішив написати невеличку заявку, щоб урізноманітнити свій раціон. Вирішив поділитися. Стаття призначена для початківців у киві. Додаток займає близько 100 рядків коду.

Мета створення велопрограми:

  1. Уникайте частих повторень дієти. Щоб не їсти одну і ту ж страву занадто часто.
  2. Я не забував страви, які їв, потім забув і роками до них не повертався, бо не пам'ятав банального. Це трапляється зі мною.

Вступ

Ви не можете прочитати жодної вступної лірики.

Мені довелося жити в одній країні, в одному готелі, де їх щодня годували на сніданок яйцями і нічим більше, і через місяць він почав свербіти. Він звернувся за медичною допомогою, хоча раніше нічого подібного не страждав. Навчившись гіркого досвіду, після цього він вирішив для себе дозволити якомога менше повторень у їжі, щоб він не міг накопичувати нічого в своєму тілі. Це мій особистий досвід, я просто розповідаю, не нав'язуючи. Можливо, тут немає без винятку правил, ймовірно, вівсянку можна їсти щодня протягом десятків років.

Знімки екрана

Припустимо, моя дієта складається з 50 страв. Наприклад, сьогодні я їв омлет. Я натискаю на кнопку, і омлет стоїть на 50-му рядку в черзі, а перед ним 49 страв, які я з’їм, щоб знову дійти до омлету. Ось і вся логіка програми. (На знімках екрану страви голі, всі випадковості випадкові, вони не мають ніякого відношення до моєї реальної дієти).

Вихідний код та пояснення

Я навмисно не використовував kv-файли, оскільки код подано в навчальних цілях для людей, які знайомі з python. Все написано на голому пітоні. У поясненнях я не буду зупинятися на поясненнях коду python, а відразу перейду до специфічних особливостей Kivy.


  • Клас відповідає за запуск початкової сторінки програми, його можна викликати як завгодно, наприклад StartScreen. І успадковує модуль kivy Screen. Додаток складається з 3 вікон, ці вікна створені за допомогою цього модуля.

  • BoxLayout ділить екран на рівні частини, за замовчуванням горизонтально, я написав орієнтацію = 'вертикальний', щоб розділити вертикально

  • Кнопка - створює кнопки, в on_press встановлюється, яка функція запускатиметься при натисканні.
  • - додає кнопки до шарів та вікон

  • Розмітка сітки дещо схожа на тег таблиці в html, вказуючи cols - кількість стовпців або рядків - кількість рядків.

Ви можете вказати обидва параметри або один параметр.
Екран буде розділений на потрібну кількість відсіків.


  • RecycleView - це модуль, який створює вертикальну прокрутку в моєму додатку. Особливістю RecycleView є те, що він створює сувої з елементами однакової ширини та висоти. І це працює швидко. І є модуль ScrollView, він може будувати сувої з елементами різного розміру, але він працює повільніше, ніж RecycleView
  • - у коді часто зустрічаються такі рядки. Я щойно використовував Config kivy як свій сховище даних. Ну, нехай буде кілька тисяч страв, немає сенсу робити сад із sqlite та чимось подібним. Всі дані зберігаються в одному файлі. Цей файл зберігається в тій же папці, що і сама програма, якщо ви вказали self.directory, як у моєму коді, але ви можете вказати self.user_data_dir, щоб цей файл не знищувався під час обміну або оновлень.