Нажатием кнопки можно выбрать один из инструментов (компонентов) для добавления на схему.
Правой кнопкой мыши можно отменить добавление.
Кнопкой R на клавиатуре – вращать компонент на 90 градусов.
Добавленные компоненты можно перемещать с зажатой ЛКМ и удалять нажатием ПКМ.
Компоненты, содержащие текст, можно редактировать двойным кликом ЛКМ.
Колесико мыши используется для навигации: прокрутка – масштабирование, движение с зажатием – перемещение.
Сохранить схему для редактирования можно в текстовый файл (*.txt) или специальный файл проекта (*.circ, по факту бинарный).
Настроено открытие программы через файл (открыть с помощью)
Доступен экспорт схемы в форматах bmp, jpg, png, svg.
Базовый класс компонентов Component
– абстрактный.
От него наследуются SerialComponent
(последовательный компонент, напр., резистор), EndComponent
(тупик, напр., земля) и TwoInputGate
(логические вентили с двумя входами), от которых уже наследуются все компоненты.
В каждом присутствует виртуальный метод draw(QGraphicsScene *scene)
, принимающий указатель на сцену, на которой ему нужно отрисоваться (тут используется полиморфизм).
Перегружен оператор вывода в поток для сохранения в текстовый файл.
GraphicsView
– класс рабочего пространства, наследуется от QGraphicsView
. Хранит в шаблонном векторе все добавленные компоненты