На этом шаге рассмотрим класс сцены QGraphicsScene.
Класс сцены (QGraphicsScene) является классом для управления элементами без их отображения. Как только какой-либо элемент сцены подвергся изменениям, объект класса QGraphicsScene запоминает его состояние.
Перед тем как сообщить о необходимости перерисовки, вся область разделяется на подобласти и осуществляется анализ того, в какой из них были выполнены изменения. Эта операция реализуется очень быстро и способна выполняться в режиме реального времени для миллионов элементов.
Отправкой сигнала changed() объект сцены сообщает представлениям о необходимости отображения измененного содержимого, после чего представления отображают найденные области.
Объект сцены (QGraphicsScene) является контейнером, содержащим в себе объекты, которые созданы от классов, наследующих QGraphicsItem. Эти объекты являются данными без графического представления. Элементы добавляются в сцену при помощи метода QGraphicsScene::addItem().
Для добавления элементов в сцену можно воспользоваться методами addEllipse(), addLine(), addPath(), addPixmap(), addPolygon(), addRect() и addText(), которые неявно создадут соответствующий элемент, добавят его и вернут его указатель.
Для того чтобы получить указатели на все элементы сцены, можно воспользоваться методом QGraphicScene::items(). Если вас интересует один элемент с определенными координатами, то получить указатель на него можно с помощью метода QGraphicScene::itemAt(), который возвращает самый верхний элемент, находящийся на заданных координатах.
Для создания объекта сцены в конструктор класса QGraphicsScene нужно передать объект прямоугольной области с вещественными параметрами QRectF. Координаты области могут содержать и отрицательные значения.
На следующем шаге рассмотрим класс QGraphicsView.