Пример десктопного проекта на Python для демонстрации кода.
По сути представляет часть дипломного проекта студентов технического ВУЗа. Должен визуализировать рабочие зоны радионавигационных систем с помощью трех различных методов.
Проект выполнялся в качестве дружеской помощи. Выкладывание в открытый доступ с заказчиками согласован с условием вырезания их упоминания.
Цель: Реализация десктопного ПО для визуализации расчетов рабочих зон радионавигационных систем с помощью трех методов.
Подробные требования:
-
Десктопное ПО с графическим интерфейсом, удобным для использования в целях визуализации студентами трех различных методов расчета рабочих зон. Предназначено как для дополнения процесса обучения и выполнения лабораторных работ, так и для личного использования и проведения расчетов.
-
Конечный продукт должен представлять собой десктопное ПО с графическим интерфейсом в формате исполняемого exe-файла для Windows.
-
Функциональные требования:
-
Заголовки окон - с названием ПО. В данном репозитории заголовки изменены на "Рабочие зоны".
-
При запуске в течение какого-то времени должен показываться логотип ПО. Оригинальный логотип в формате 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"- для смены размера изображения лого. Требует, чтобы параметры задавались вручную в теле скрипта как константы.