Skip to content
Petr Savchenko edited this page Sep 29, 2018 · 2 revisions

Общий алгоритм программного продукта

Для решения поставленной задачи был использован каркас графического представления представленный в Qt.

Сцена

Сцена выступает в качестве контейнера для элементов, добавляемых на неё. В стандартной библиотеке Qt сцена представлена классом QGraphicsScene, для решения поставленной задачи не достаточно стандартных функций, поэтому необходимо реализовать свою сцену, унаследовав от библиотечной.

Представление

Вид (view) собой виджет, который визуализирует содержимое сцены. Представление получает события ввода данных с клавиатуры и мыши и переводит их в события сцены (преобразуя, где необходимо, используемые координаты в координаты сцены), перед отправкой событий в визуализируемую сцену.

Элемент

Для реализации элемента, который добавляется на сцену необходимо унаследовать от стандартного класса QGraphicsPoligonItem и переопределить в нем некоторые функции. Класс QGraphicsPoligonItem поддерживает следующие возможности:

События нажатия кнопки мыши, перемещение, отпускание и двойное нажатие кнопки мыши, так же как и события наведения мыши, события колесика мыши и события контекстного меню.

  • Фокус ввода с клавиатуры и события клавиш
  • Перетаскивание (Drag and Drop)
  • Группировку, как через родительско-дочерние отношения, так и через
  • Обнаружение столкновений

Элементы существуют в локальной системе координат.

Clone this wiki locally