Графическое представление

   
На этом шаге рассмотрим классы графического представления.

   
При программировании графики мы зачастую имеем дело с целой массой объектов, двигающихся и перекрывающих друг друга. Все они должны быть отображены в режиме реального времени без побочных эффектов. И это представляет собой нелегкую задачу для разработчика.

   
Графическое представление — это инструмент для управления и взаимодействия с большим количеством элементов двухмерных изображений, включая их визуальное увеличение/уменьшение и поворот. Кроме того, оно берет на себя также и обнаружение столкновений (collision detection).

   
Классы графического представления, подобно классам QTableWidget, QTreeWidget и QListWidget, являют собой элементный подход, опирающийся на концепцию "модель-представление" (Model-View).

   
Графическое представление базируется на трех понятиях: сцена (QGraphicsScene), представление (QGraphicsView) и элемент (QGraphicsItem) (рис. 1).


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

   
Взаимодействие классов можно описать следующим образом: класс QGraphicsScene является моделью для графических элементов, которые реализуются унаследованными от класса QGraphicsItem, а класс QGraphicsView — это представление, которое унаследовано от класса QAbstractScrollArea. Представления используются для показа элементов модели (объекта класса QGraphicsScene), и с одной моделью может быть связано сразу несколько виджетов представления (рис. 2).


Рис.2. Взаимодействие представлений со сценой

   
На следующем шаге рассмотрим класс сцены.

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



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

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