Требования: Python3, PyQt 5.15
Запуск приложения: python3 main.py
Приложение работает в нескольких режимах, которые включаются кнопками на верхней панели инструментов:
-
Режим добавления и перемещения узлов по холсту. Первая кнопка(значок круга) на панели инструментов, включен по умолчанию. По клику на хосте создаются вершины, удержанием мыши перетаскиваются уже созданные. Зажав кнопку Shift-R, можно выделить несколько вершин и перемещать их группой. (выделенные подсвечиваются синим цветом)
-
Режим добавления неориентированных ребер(вторая кнопка - значок линии). Первым кликом выбирается начальная вершина (будет подсвечена красным), вторым кликом - конечная.
-
Режим добавления ориентированных ребер(третья кнопка - значок стрелки). Порядок действий аналогичен второму режиму, добавляется указательная стрелка для ребра.
-
Режим удаления вершин(четвертая кнопка - значок корзины). По клику на определенной вершине происходит удаления вершины и связанных с ней ребёр.
-
Режим поиска кратчайшего расстояния между двумя вершинами (пятая кнопка - значок увеличительного стекла). Первым кликом выбирается исходная вершина пути, вторым - конечная вершина. (Происходит подсветка наименьшего пути. Реализован алгоритм Дейкстра для ориентированного графа)
Слайдер на панели инструментов дает возможность в любом режиме увеличивать/уменьшать размеры вершин и стрелок для более удобного выделения мышью или разграничения тесно находящихся вершин.