Шаг 228.
Библиотека Qt.
Графическое представление

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

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

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

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

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


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

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


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

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




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