-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Общий алгоритм программного продукта
Для решения поставленной задачи был использован каркас графического представления представленный в Qt.
Сцена
Сцена выступает в качестве контейнера для элементов, добавляемых на неё. В стандартной библиотеке Qt сцена представлена классом QGraphicsScene, для решения поставленной задачи не достаточно стандартных функций, поэтому необходимо реализовать свою сцену, унаследовав от библиотечной.
Представление
Вид (view) собой виджет, который визуализирует содержимое сцены. Представление получает события ввода данных с клавиатуры и мыши и переводит их в события сцены (преобразуя, где необходимо, используемые координаты в координаты сцены), перед отправкой событий в визуализируемую сцену.
Элемент
Для реализации элемента, который добавляется на сцену необходимо унаследовать от стандартного класса QGraphicsPoligonItem и переопределить в нем некоторые функции. Класс QGraphicsPoligonItem поддерживает следующие возможности:
События нажатия кнопки мыши, перемещение, отпускание и двойное нажатие кнопки мыши, так же как и события наведения мыши, события колесика мыши и события контекстного меню.
- Фокус ввода с клавиатуры и события клавиш
- Перетаскивание (Drag and Drop)
- Группировку, как через родительско-дочерние отношения, так и через
- Обнаружение столкновений
Элементы существуют в локальной системе координат.