Класс QGraphicsItem

   
На этом шаге рассмотрим класс QGraphicsItem.

   
Класс QGraphicsItem является основным для элементов, представленных на рисунке 1.


Рис.1. Иерархия классов элементов графического представления

   
Этот класс предоставляет поддержку для событий мыши и клавиатуры, перетаскивания (drag & drop), группировки элементов и определения столкновений (collision detection). Также возможны следующие операции над элементами:

  • установка местоположения методом setPos();
  • скрытие и показ — методы hide() и show();
  • установка доступного/недоступного состояния с помощью метода setEnable();
  • трансформация — методы rotate(), scale(), translate(), shear() и setMatrix();
  • перерисовка — paint().

   
Этот класс не позволяет создавать объекты, т. к. он является абстрактным. Для создания объектов нужно воспользоваться готовыми унаследованными от него классами (рис. 1) или создать свой класс, унаследовав его от QGraphicsItem и реализовав в нем методы paint() и boundingRect().

   
Классы, унаследованные от класса QAbstractGraphicsShapeItem, представляют собой различные геометрические фигуры: эллипс (QGraphicsEllipseItem), полигон (QGraphicsPolygonItem), прямоугольник (QGraphicsRectItem) и текст (QGraphicsSimpleTextItem). Если нужно создать класс для поддержки какой-либо другой формы, то, в большинстве случаев, лучше унаследовать именно класс QAbstractGraphicsShapeItem.

   
В диаграмме на рис. 1 присутствуют два класса для текстовых элементов. Класс
QGraphicsSimpleTextItem предназначен для быстрого отображения простого текста при малом расходе памяти. Если же вам потребуется отобразить форматированный текст, то для этого нужно будет воспользоваться классом QGraphicsTextItem, который обладает массой возможностей, позволяющих управлять текстовым документом вплоть до его редактирования.

   
К готовым классам элементов также относятся линии (GraphicsLineItem), растровые изображения (QGraphicsPixmapItem), векторная графика (QGraphicsSvgItem). При помощи класса QGraphicsItemGroup можно объединять элементы в группы.

   
На следующем шаге рассмотрим пример размещения элементов на сцене.

Предыдущий шаг
Содержание
Следующий шаг



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий