/
yarik2
/
task_manager
Обзор
Документация
Войти
/
yarik2
/
task_manager
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
main.py
63 строки
2 KB
yarik2
create: .gitignore, main.py, README.md, tasks.json, test_app.py
04 май 2026, 11:22
Верифицирован
04 май 2026, 11:22
85a05bf
Код
Авторство
О чём код?
import tkinter as tk from tkinter import messagebox, simpledialog import json import os from datetime import datetime DATA_PATH = 'tasks.json' def validate_task(name, priority, due_date): if not name.strip(): return False, "Название не может быть пустым" if priority not in ['Low', 'Medium', 'High']: return False, "Некорректный приоритет" try: datetime.strptime(due_date, '%Y-%m-%d') except ValueError: return False, "Дата должна быть в формате ГГГГ-ММ-ДД" return True, "" class TaskManagerApp: def __init__(self, root): self.root = root self.root.title('Менеджер задач') self.tasks = [] self.setup_ui() self.load_tasks() def setup_ui(self): # [GUI компоненты: Entry, OptionMenu, Listbox, Buttons...] # ... pass def add_task(self): name = self.name_entry.get() priority = self.priority_var.get() due_date = self.due_date_entry.get() valid, msg = validate_task(name, priority, due_date) if not valid: messagebox.showerror("Ошибка", msg) return task = {'name': name, 'priority': priority, 'due_date': due_date} self.tasks.append(task) self.save_tasks() self.refresh_list() def save_tasks(self): with open(DATA_PATH, 'w', encoding='utf-8') as f: json.dump(self.tasks, f, ensure_ascii=False, indent=2) def load_tasks(self): if os.path.exists(DATA_PATH): with open(DATA_PATH, 'r', encoding='utf-8') as f: self.tasks = json.load(f) self.refresh_list() def refresh_list(self): # [очистить и заполнить Listbox] pass if __name__ == '__main__': root = tk.Tk() app = TaskManagerApp(root) root.mainloop()