Skip to content

Latest commit

 

History

History
84 lines (61 loc) · 5.38 KB

File metadata and controls

84 lines (61 loc) · 5.38 KB

Пример десктопного проекта на Python

Пример десктопного проекта на Python для демонстрации кода.

По сути представляет часть дипломного проекта студентов технического ВУЗа. Должен визуализировать рабочие зоны радионавигационных систем с помощью трех различных методов.

Проект выполнялся в качестве дружеской помощи. Выкладывание в открытый доступ с заказчиками согласован с условием вырезания их упоминания.


Техническое задание от заказчика

Цель: Реализация десктопного ПО для визуализации расчетов рабочих зон радионавигационных систем с помощью трех методов.

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

  1. Десктопное ПО с графическим интерфейсом, удобным для использования в целях визуализации студентами трех различных методов расчета рабочих зон. Предназначено как для дополнения процесса обучения и выполнения лабораторных работ, так и для личного использования и проведения расчетов.

  2. Конечный продукт должен представлять собой десктопное ПО с графическим интерфейсом в формате исполняемого exe-файла для Windows.

  3. Функциональные требования:

    • Заголовки окон - с названием ПО. В данном репозитории заголовки изменены на "Рабочие зоны".

    • При запуске в течение какого-то времени должен показываться логотип ПО. Оригинальный логотип в формате jpg вырезан, добавлена заплашка с надписью "Лого".

    • Главное окно должно содержать:

      • 3 вкладки с соответствующими методами. Каждая вкладка независима от остальных.

      • В каждой вкладке - график и изменяемые параметры метода через элементы графического интерфейса. Кроме того, должна быть функция отключения легенды графика.

      • В каждой вкладке - кнопка "Построить" для постоения графика по соответствующему методу. Каждый метод имеет свои параметры, но их объединяет общий принцип, основанный на методе Монте-Карло.

      • График должен содержать: точки маяков, подходящие по методу точки и контур подходящей области (с косвенно заданной точностью в параметрах). У графиков должна быть возможность передвигать, приближать, отдалять картинку, а также менять параметры осей и сохранять результат.

      • Вследствие сильной нагрузки большим количеством точек на графике из-за специфики метода допускаются подвисания при взаимодействии с ним.


Зависимости

  • Python 3.9+ - язык программирования.
  • PyQt5 5.15+ - Qt фреймворк под Python для реализации графического интерфейса.
  • pyqtgraph 0.13.7+ - реализация графиков как Qt виджетов на Python.
  • pillow 10.4+ - для скрипта изменения размера изображения лого.
  • pyinstaller 6.11+ - для сборки exe-файла.

Заметки для разработчика

Использование утилит из _extrautils:

  • .\_extrautils/convert_ui.bat - для конвертации ui в py.
  • python "_extrautils/resize_preview_img.py" - для смены размера изображения лого. Требует, чтобы параметры задавались вручную в теле скрипта как константы.