Skip to content

stanislavsibirtsev/visual-chart-editor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Данное приложение "Визуальный редактор диаграмм" разработано на Python с использованием PyQt6 для интерфейса, SQLAlchemy для работы с базой данных PostgreSQL и Matplotlib для отрисовки диаграмм. Приложение позволяет создавать, редактировать, сохранять и загружать диаграммы (столбчатые, линейные, круговые) и экспортировать/импортировать их в формате CSV.

Возможности приложения

  1. Создание диаграмм с различными интерфейсами создания и поддержкой создания сразу нескольких графиков в рамках одной линейных диаграммы:
  • Столбчатые
  • Линейные
  • Круговые
  1. Редактирование диаграмм:
  • Динамическое изменение названия
  • Редактирование данных через таблицу
  • Контекстное меню для удаления строк (ПКМ)
  1. Сохранение и загрузка:
  • Сохранение диаграмм в базе данных PostgreSQL
  • Загрузка ранее сохраненных диаграмм
  • Удаление диаграмм
  1. Экспорт и импорт:
  • Экспорт диаграмм в CSV файлы
  • Импорт диаграмм из CSV файлов
  1. Визуализация:
  • Просмотр диаграммы в отдельном окне
  • Настройка цветовой схемы, шрифта и размера текста
  • Для столбчатых диаграмм: перетаскивание столбцов (Drag & Drop) для изменения порядка
  1. Дополнительные функции:
  • Сохранение диаграммы в PNG
  • Валидация данных (уникальность имен для круговых и столбчатых диаграмм, уникальность имен диаграмм в рамках одного типа)
  • Мультиоконность (возможность создавать или редактировать сразу несколько диаграмм)

Структура проекта

visual-chart-editor/
│── venv/                      # Виртуальное окружение
│── main.py                    # Точка входа
│── database.py                # Подключение к БД
│── models.py                  # Модели данных
│── .env                       # Настройки подключения к БД
│── requirements.txt           # Зависимости
│── README.md                  # Документация
│
├── ui/                        # Графический интерфейс
│   ├── main_window.py         # Главное окно
│   ├── chart_dialog.py        # Диалог создания/редактирования диаграммы
│   └── plot_window.py         # Окно просмотра диаграммы
│
└── controllers/               # Логика приложения
    └── diagram_controller.py  # Управление диаграммами (CRUD, импорт/экспорт)

Установка и запуск

Предварительные требования

  • Установленный Python 3.10 или выше
  • PostgreSQL сервер (локальный или удаленный)
  • Созданная база данных и пользователь с правами на управление схемой

Шаги установки

  1. Клонируйте репозиторий:
git clone https://github.com/stanislavsibirtsev/visual-chart-editor.git
cd visual-chart-editor
  1. Создайте и активируйте виртуальное окружение:
python -m venv venv
source venv/bin/activate  # Linux/MacOS
venv\Scripts\activate     # Windows
  1. Установите зависимости:
pip install -r requirements.txt
  1. Настройте базу данных:
  • Создайте файл .env в корне проекта с содержимым:
DB_HOST=localhost
DB_PORT=5432
DB_NAME=db_diagramms
DB_USER=user_diagrams
DB_PASSWORD=ваш_пароль
  • Замените значения на актуальные для вашей базы данных.
  1. Инициализируйте базу данных:
  • Запустите приложение. При первом запуске автоматически создадутся необходимые таблицы:
python main.py

Использование

Главное окно

  • Создать диаграмму: Открывает диалог для создания новой диаграммы.
  • Открыть: Открывает выбранную диаграмму для редактирования (требуется предварительный выбор в дереве).
  • Удалить: Удаляет выбранную диаграмму.
  • Экспорт в CSV: Экспортирует выбранную диаграмму в CSV файл (активна при выборе диаграммы).
  • Импорт из CSV: Импортирует диаграмму из CSV файла.

Редактирование диаграммы

  • Имя диаграммы: Введите уникальное имя для диаграммы (в рамках ее типа).
  • Тип диаграммы: Выберите тип (при создании).
  • Таблица данных:
    • Для столбчатых и круговых: два столбца (Наименование, Значение).
    • Для линейных: три столбца (Серия, X, Y).
  • Контекстное меню: Правый клик по строке таблицы позволяет удалить строку.
  • Автоматическое добавление строк: При заполнении последней строки добавляется новая пустая.

Просмотр диаграммы

  • Цветовая схема: Выберите из нескольких предустановленных палитр.
  • Шрифт и размер: Настройте отображение текста на диаграмме.
  • Сохранение в PNG: Кнопка "Сохранить изображение".
  • Для столбчатых диаграмм:
    • Перетаскивайте столбцы для изменения порядка.
    • Кнопка "Сохранить порядок" применяет изменения в таблице данных.

Экспорт/импорт CSV

  • Экспорт: Сохраняет данные диаграммы в CSV файл с метаданными (тип и имя).
  • Импорт: Загружает диаграмму из CSV файла. После загрузки можно изменить имя.

Разработчикам

Зависимости

  • PyQt6
  • SQLAlchemy
  • psycopg2-binary
  • matplotlib
  • pydantic==2.11.0
  • python-dotenv

Структура кода

  • database.py: Инициализация движка и сессии SQLAlchemy.
  • models.py: Модели SQLAlchemy для диаграмм (BarChart, LineChart, PieChart).
  • controllers/diagram_controller.py: Бизнес-логика (CRUD, импорт/экспорт).
  • ui/: Графический интерфейс на PyQt6.

Расширение функционала

  • Добавление новых типов диаграмм: расширьте _MODEL_MAP в diagram_controller.py и добавьте новую модель.
  • Изменение интерфейса: редактируйте файлы в папке ui.

Лицензия

Проект распространяется под лицензией MIT.

About

Многооконное приложение для создания и редактирования диаграмм (столбчатые, линейные, круговые) с визуализацией в реальном времени. Поддержка сохранения в PostgreSQL, экспорта в .png и .csv, редактирования параметров и данных. Используются PyQt, Matplotlib и SQLAlchemy/psycopg2.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages