gui module¶
- class gui.FinancialPlannerApp(root)[исходный код]¶
Базовые классы:
objectУправляющий класс графического интерфейса «Финансовый Планер».
Класс инкапсулирует логику визуализации данных через Tkinter, обработку пользовательского ввода, хранение текущего состояния транзакций и вызов функций аналитического анализа (Pandas/Matplotlib).
- root¶
Главное окно приложения.
- Type:
tk.Tk
- transactions¶
Список объектов транзакций, загруженных из хранилища.
- Type:
list[Transaction]
- amount_var¶
Буфер для ввода суммы операции.
- Type:
tk.StringVar
- category_var¶
Буфер для ввода категории.
- Type:
tk.StringVar
- date_var¶
Буфер для ввода даты (формат YYYY-MM-DD).
- Type:
tk.StringVar
- desc_var¶
Буфер для ввода описания.
- Type:
tk.StringVar
- type_var¶
Переключатель типа операции („expense“/“income“).
- Type:
tk.StringVar
- tree¶
Виджет таблицы для отображения истории транзакций.
- Type:
ttk.Treeview
- add_transaction()[исходный код]¶
Обрабатывает добавление новой транзакции через интерфейс.
Метод выполняет последовательность действий: 1. Извлекает значения из строковых переменных Tkinter (StringVar). 2. Вызывает функции внешней валидации:
validate_amount(),validate_category()иvalidate_date().При успешной проверке создает объект
Transaction.Инициирует сохранение в CSV-файл и обновляет локальный список.
Перерисовывает таблицу в интерфейсе и очищает поля ввода.
В случае любой ошибки валидации или записи процесс прерывается, и пользователю выводится модальное окно с описанием проблемы.
- Исключение:
Exception – Перехватывает все исключения (ValueError, IOError и др.), возникающие в процессе валидации или сохранения, и отображает их через messagebox.showerror.
- cashflow_trends()[исходный код]¶
Обработчик события: формирует и отображает график динамики денежных потоков.
Метод преобразует текущую историю транзакций в формат временного ряда и визуализирует тренды доходов и расходов. Это позволяет пользователю проанализировать финансовую активность в хронологическом порядке.
- clear_input_fields()[исходный код]¶
Сбрасывает значения в текстовых полях формы ввода.
Метод очищает переменные amount_var, category_var и desc_var, что приводит к визуальному удалению текста из соответствующих виджетов ttk.Entry.
- create_widgets()[исходный код]¶
Создает и размещает все элементы пользовательского интерфейса.
Метод выполняет визуальную компоновку приложения, разделенную на три логических блока: 1. Форма ввода (LabelFrame): сбор данных о сумме, категории, дате и описании. 2. Таблица истории (Treeview): интерактивный список всех транзакций с прокруткой. 3. Панель аналитики (LabelFrame): кнопки вызова графических отчетов.
В процессе выполнения инициализируются связанные переменные Tkinter (amount_var, category_var и др.), необходимые для реактивного взаимодействия с пользователем.
Примечание
Использует менеджеры геометрии pack для основных контейнеров и grid для элементов внутри форм ввода и аналитики.
- expense_dia()[исходный код]¶
Обработчик события: генерирует и отображает круговую диаграмму расходов.
Метод подготавливает данные, конвертируя текущий список транзакций в формат DataFrame, и инициирует построение графика распределения расходов по категориям.
- income_dia()[исходный код]¶
Обработчик события: генерирует и отображает круговую диаграмму доходов.
Метод подготавливает данные, конвертируя текущий список транзакций в формат DataFrame, и инициирует построение графика распределения доходов по категориям.
- refresh_transaction_table()[исходный код]¶
Синхронизирует виджет таблицы с актуальным списком транзакций.
Метод полностью очищает текущие записи в графическом виджете Treeview и заново заполняет его данными из атрибута self.transactions. В процессе выполняется форматирование данных: преобразование типов в человекочитаемый вид (например, „income“ в „Доход“) и округление сумм.
После обновления таблицы выполняется автоматическая прокрутка к последней (самой новой) записи.