Шаг 230.
Библиотека Qt.
Класс QGraphicsView

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

    Класс QGraphicsView является виджетом, предназначенным для визуализации содержимого сцены (QGraphicsScene). Подобное отделение данных от их графического представления позволяет отображать одну и ту же сцену (QGraphicsScene) в различных виджетах QGraphicsView.

    Благодаря тому, что класс QGraphicsView унаследован от класса QAbstractScrollArea, при отображении появляются полосы прокрутки в случаях, когда пространства для показа сцены недостаточно. Все элементы, хранящиеся в QGraphicsScene, автоматически отображаются в окне представления.

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

    Для того чтобы отцентрировать представление относительно определенной точки, можно вызвать метод QGraphicsView::centerOn(), передав в него координаты этой точки.

    Более того, одно из свойств, которое получил класс QGraphicsView в наследство от класса QAbstractScrollArea, это то, что в качестве области просмотра (viewport) можно использовать любой виджет. Это позволяет заменять QWidget на QGLWidget (унаследован от класса QWidget, основное назначение — осуществлять связь OpenGL с виджетом, объекты класса QGLWidget могут использоваться в качестве контекста рисования для QPainter) и дает возможность выбора наиболее подходящего варианта для визуализации в процессе работы программы.

    Установка виджета области просмотра осуществляется вызовом метода QAbstractScrollArea::setViewPort(). Например, для того чтобы изменить область просмотра на виджет, поддерживающий OpenGL, нужно сделать следующее:

pView->setViewport(new QGLWidget);

    Использование матрицы трансформации, устанавливаемой методом setMatrix(), позволяет увеличивать, уменьшать и поворачивать отображаемую в представлении сцену.

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




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