Проект представляет собой менеджер задач с графическим интерфейсом на основе библиотеки tkinter
. Программа позволяет пользователям создавать, редактировать, удалять и сортировать задачи. Также реализована возможность сохранения задач в файл для их последующего восстановления при перезапуске программы.
- Создание задачи: Пользователь может создать новую задачу, указав название, описание, дедлайн, время и статус выполнения.
- Редактирование задачи: Пользователь может редактировать существующую задачу.
- Удаление задачи: Пользователь может удалить задачу.
- Сортировка задач: Пользователь может сортировать задачи по выполнению, названию и дедлайну.
- Сохранение задач: Задачи сохраняются в файл и восстанавливаются при перезапуске программы.
- Отсутствие дедлайна: Возможность указать, что у задачи нет дедлайна.
-
TaskManagerUI
- Атрибуты:
root
: корневой элементtkinter
.task_list
: объект классаTaskList
.update_task_list_callback
: функция обратного вызова для обновления списка задач.
- Методы:
__init__(self, root, task_list, update_task_list_callback)
: инициализация пользовательского интерфейса.setup_ui(self)
: настройка пользовательского интерфейса.add_task(self)
: добавление новой задачи.edit_task(self, event)
: редактирование выбранной задачи.delete_task(self, event=None)
: удаление выбранной задачи.toggle_task_completion(self, event)
: переключение статуса выполнения задачи.update_task_list(self)
: обновление списка задач в интерфейсе.sort_tasks(self, key)
: сортировка задач по указанному ключу.
- Атрибуты:
-
TaskList
- Атрибуты:
tasks
: список задач.
- Методы:
__init__(self)
: инициализация списка задач и загрузка задач из файла.add_task(self, task)
: добавление задачи в список.save_tasks(self)
: сохранение задач в файл.load_tasks(self)
: загрузка задач из файла.
- Атрибуты:
-
Task
- Атрибуты:
title
: название задачи.description
: описание задачи.deadline
: дедлайн задачи.completed
: статус выполнения задачи.
- Методы:
__init__(self, title, description, deadline, completed)
: инициализация задачи.to_dict(self)
: преобразование задачи в словарь.from_dict(cls, data)
: создание задачи из словаря.
- Атрибуты:
-
TaskDialog
- Атрибуты:
parent
: родительский элементtkinter
.task_list
: объект классаTaskList
.callback
: функция обратного вызова для обновления списка задач.task
: редактируемая задача (если есть).
- Методы:
__init__(self, parent, task_list, callback, task=None)
: инициализация диалогового окна.toggle_deadline(self)
: включение/выключение полей ввода даты и времени.save_task(self)
: сохранение задачи.delete_task(self)
: удаление задачи.
- Атрибуты:
-
Установите зависимости:
pip install -r requirements.txt
-
Запустите приложение:
python main.py
tkinter
tkcalendar
Если в процессе реализации возникнет необходимость изменить архитектуру, это будет отражено в данном разделе с указанием причин и обоснований.
tkinter
tkcalendar