Класс 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.

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



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

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