- Разработчики
- Задание
- Инструкции
- Запуск программы через командную строку
- Описание работы программы
- Заключение
- Илья Павлов
- Анна Овсинская
- Анатолий Долгих
- Максим Абраменко
Требуется разработать программное приложение с графическим интерфейсом на языке программирования Python с использованием библиотеки PyQt5 для разработки GUI и PeeWee для работы с базой данных.
- Реализовать минимальный набора функционала, заданного вариантом;
- Уметь объяснить устройство (архитектуру) своей программы, назначение используемых в программе классов и методов, знать их поля и прототипы соответственно;
- Подготовить отчёт о выполнении курсового проекта (требования см. ниже);
- Подготовить демонстрацию своей программы – база данных должна быть заполнена демонстрационными примерами, рудиментарные элементы спрятаны или отключены.
Этот набор требований обеспечивает оценку в 60 из 100 баллов. Знание и понимание студентом реализованных в программе возможностей оценивается индивидуально от 0 до 20 баллов, при 0 зачёт не ставится. Качество реализации программы оценивается дополнительными от 0 до 20 баллов, которые прибавляются к оценке каждого студента.
Параметр субъективный – может подразумевать, но не ограничивается следующими пунктами:
- Развитие функциональных возможностей в дополнение к указанным в задании;
- Реализацию функциональных особенностей, касающихся удобства пользования программой;
- Проявление творческого подхода к работе в целом.
- Требуется разработать программу согласно варианту задания;
- Оформить отчёт, который должен содержать титульный лист, оглавление, вариант задания и заключение;
- Перечислить и описать в отчёте реализованные возможности;
- Прикрепить к отчёту скриншоты с примерами того, как эти возможности работают;
- Выслать по почте отчёт и архив с исходным кодом по адресу avtrifonenkov@mephi.ru и договориться о дате и времени защиты проекта;
- В условленное время всем одновременно подключиться в конференции, в которой вы продемонстрируете свой проект и будете отвечать на вопросы преподавателя.
Маршруты: Название, Точки, Дата создания Точка: Широта, Долгота, Порядковый номер
Экран «Маршруты»: отображает список маршрутов, их названия, количество точек в каждом, при нажатии на элемент списка происходит переход к экрану «Карта»
Экран «Карта»: отображает карту; на карте метками обозначены координаты, задающие контрольные пункты маршрута, метки соединены прямыми линиями; при нажатии правой мыши по карте запоминаются координаты точки, по которой произошло нажатие, появляется контекстное меню с предложением добавить точку к маршруту; новая точка становится новым концом маршрута
Виджет «Всплывающее описание»: при наведении курсора мыши на метку поверх карты рядом с меткой «всплывает» поле, которые отображает координаты точки, порядковый номер точки, а также содержит кнопку «Удалить точку». При удалении точки порядковые номера оставшихся пересчитываются
Редактирование списка точек маршрута. Возможность добавления точек в середину маршрута нажатием на соединительную прямую на карте. Корректировка координат точки «перетаскиванием». Расчёт и отображение текущей длины маршрута (пример – функция «линейка» в крупных картографических сервисах).
Плагины карты по-разному работают на разных операционных системах. В зависимости от ОС необходимо заменить 103 строку файла MyMap.qml: В linux:
Plugin {
id: mapPlugin
name: /*"osm"*/ "mapboxgl"/*, "esri", ...*/
}
В windows:
Plugin {
id: mapPlugin
name: "esri" /* "mapboxgl", "esri", ...*/
}
python main.py interface.qml
Запускаем программу через консоль: python main.py interface.qml
Открывается экран приложения, с ранее загруженными в базу данных маршрутами:
Вводим новый маршрут и нажимаем кнопку "добавить":
Теперь видим, как этот маршрут отобразился в списке:
Нажимаем на кнопку "карта", чтобы открыть карту с данным маршрутом:
Далее открывается пустая карта (в данном случае пустая):
Ставим точки маршрута, нажимая правой кнопкой мыши. Чтобы листать карту необходимо зажать левую кнопку и двигать карту:
Откроем для примера старый маршрут:
Реализована система хранения маршрутов на языке Python и QML с использованием базы данных, связанной с python через библиотеку peewee.