Spec-Zone.ru › Qt 5.6

Класс QGraphicsView

Класс QGraphicsView предоставляет виджет для отображения содержимого QGraphicsScene. Подробнее...

Заголовок: #include <QGraphicsView>
qmake: QT += widgets
С тех пор: Qt 4.2
Наследует: QAbstractScrollArea
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Открытые типы

флаги CacheMode
перечисление CacheModeFlag { CacheNone, CacheBackground }
перечисление DragMode { NoDrag, ScrollHandDrag, RubberBandDrag }
перечисление OptimizationFlag { DontClipPainter, DontSavePainterState, DontAdjustForAntialiasing, IndirectPainting }
флаги OptimizationFlags
перечисление ViewportAnchor { NoAnchor, AnchorViewCenter, AnchorUnderMouse }
перечисление ViewportUpdateMode { FullViewportUpdate, MinimalViewportUpdate, SmartViewportUpdate, BoundingRectViewportUpdate, NoViewportUpdate }

Свойства

  • alignment : Qt::Alignment
  • backgroundBrush : QBrush
  • cacheMode : CacheMode
  • dragMode : DragMode
  • foregroundBrush : QBrush
  • interactive : bool
  • optimizationFlags : OptimizationFlags
  • renderHints : QPainter::RenderHints
  • resizeAnchor : ViewportAnchor
  • rubberBandSelectionMode : Qt::ItemSelectionMode
  • sceneRect : QRectF
  • transformationAnchor : ViewportAnchor
  • viewportUpdateMode : ViewportUpdateMode
  • 3 свойства унаследованы от QAbstractScrollArea
  • 6 свойств унаследованы от QFrame
  • 58 свойств унаследованы от QWidget
  • 1 свойство унаследовано от QObject

Открытые функции

QGraphicsView(QWidget *parent = Q_NULLPTR)
QGraphicsView(QGraphicsScene *scene, QWidget *parent = Q_NULLPTR)
~QGraphicsView()
Qt::Alignment alignment() const
QBrush backgroundBrush() const
CacheMode cacheMode() const
void centerOn(const QPointF &pos)
void centerOn(qreal x, qreal y)
void centerOn(const QGraphicsItem *item)
DragMode dragMode() const
void ensureVisible(const QRectF &rect, int xmargin = 50, int ymargin = 50)
void ensureVisible(qreal x, qreal y, qreal w, qreal h, int xmargin = 50, int ymargin = 50)
void ensureVisible(const QGraphicsItem *item, int xmargin = 50, int ymargin = 50)
void fitInView(const QRectF &rect, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)
void fitInView(qreal x, qreal y, qreal w, qreal h, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)
void fitInView(const QGraphicsItem *item, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)
QBrush foregroundBrush() const
bool isInteractive() const
bool isTransformed() const
QGraphicsItem * itemAt(const QPoint &pos) const
QGraphicsItem * itemAt(int x, int y) const
QList<QGraphicsItem *> items() const
QList<QGraphicsItem *> items(const QPoint &pos) const
QList<QGraphicsItem *> items(int x, int y) const
QList<QGraphicsItem *> items(const QRect &rect, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
QList<QGraphicsItem *> items(int x, int y, int w, int h, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
QList<QGraphicsItem *> items(const QPolygon &polygon, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
QList<QGraphicsItem *> items(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
QPoint mapFromScene(const QPointF &point) const
QPolygon mapFromScene(const QRectF &rect) const
QPolygon mapFromScene(const QPolygonF &polygon) const
QPainterPath mapFromScene(const QPainterPath &path) const
QPoint mapFromScene(qreal x, qreal y) const
QPolygon mapFromScene(qreal x, qreal y, qreal w, qreal h) const
QPointF mapToScene(const QPoint &point) const
QPolygonF mapToScene(const QRect &rect) const
QPolygonF mapToScene(const QPolygon &polygon) const
QPainterPath mapToScene(const QPainterPath &path) const
QPointF mapToScene(int x, int y) const
QPolygonF mapToScene(int x, int y, int w, int h) const
QMatrix matrix() const
OptimizationFlags optimizationFlags() const
void render(QPainter *painter, const QRectF &target = QRectF(), const QRect &source = QRect(), Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio)
QPainter::RenderHints renderHints() const
void resetCachedContent()
void resetMatrix()
void resetTransform()
ViewportAnchor resizeAnchor() const
void rotate(qreal angle)
QRect rubberBandRect() const
Qt::ItemSelectionMode rubberBandSelectionMode() const
void scale(qreal sx, qreal sy)
QGraphicsScene * scene() const
QRectF sceneRect() const
void setAlignment(Qt::Alignment alignment)
void установитьКистьФона(const QBrush &brush)
void установитьРежимКэширования(CacheMode mode)
void установитьРежимПеретаскивания(DragMode mode)
void установитьКистьПереднегоПлана(const QBrush &brush)
void установитьВзаимодействие(bool allowed)
void установитьМатрицу(const QMatrix &matrix, bool combine = false)
void установитьФлагОптимизации(OptimizationFlag flag, bool enabled = true)
void установитьФлагиОптимизации(OptimizationFlags flags)
void установитьФлагОтрисовки(QPainter::RenderHint hint, bool enabled = true)
void установитьФлагиОтрисовки(QPainter::RenderHints hints)
void установитьЯкорьИзмененияРазмерa(ViewportAnchor anchor)
void установитьРежимВыделенияРезинкой(Qt::ItemSelectionMode mode)
void установитьСцену(QGraphicsScene *scene)
void установитьПрямоугольникСцены(const QRectF &rect)
void установитьПрямоугольникСцены(qreal x, qreal y, qreal w, qreal h)
void установитьПреобразование(const QTransform &matrix, bool combine = false)
void установитьЯкорьПреобразования(ViewportAnchor anchor)
void установитьРежимОбновленияОбластиПредставления(ViewportUpdateMode mode)
void смещение(qreal sh, qreal sv)
QTransform преобразование() const
ViewportAnchor якорьПреобразования() const
void переместить(qreal dx, qreal dy)
QTransform преобразованиеОбластиПредставления() const
ViewportUpdateMode режимОбновленияОбластиПредставления() const

Реализованные публичные функции

virtual QVariant запросМетодаВвода(Qt::InputMethodQuery query) const
virtual QSize размерПодсказки() const
  • 20 public functions inherited from QAbstractScrollArea
  • 14 public functions inherited from QFrame
  • 211 public functions inherited from QWidget
  • 31 public functions inherited from QObject
  • 14 public functions inherited from QPaintDevice

Публичные слоты

void обновитьСцену(const QRectF &rect = QRectF(), QGraphicsScene::SceneLayers layers = QGraphicsScene::AllLayers)
void обновитьСцену(const QList<QRectF> &rects)
void обновитьПрямоугольникСцены(const QRectF &rect)
  • 19 public slots inherited from QWidget
  • 1 public slot inherited from QObject

Сигналы

void изменениеРезинки(QRect rubberBandRect, QPointF fromScenePoint, QPointF toScenePoint)
  • 3 signals inherited from QWidget
  • 2 signals inherited from QObject

Защищенные функции

virtual void рисоватьФон(QPainter *painter, const QRectF &rect)
virtual void рисоватьПереднийПлан(QPainter *painter, const QRectF &rect)

Реализованные защищенные функции

виртуальный void contextMenuEvent(QContextMenuEvent *event)
виртуальный void dragEnterEvent(QDragEnterEvent *event)
виртуальный void dragLeaveEvent(QDragLeaveEvent *event)
виртуальный void dragMoveEvent(QDragMoveEvent *event)
виртуальный void dropEvent(QDropEvent *event)
виртуальный bool event(QEvent *event)
виртуальный void focusInEvent(QFocusEvent *event)
виртуальный bool focusNextPrevChild(bool next)
виртуальный void focusOutEvent(QFocusEvent *event)
виртуальный void inputMethodEvent(QInputMethodEvent *event)
виртуальный void keyPressEvent(QKeyEvent *event)
виртуальный void keyReleaseEvent(QKeyEvent *event)
виртуальный void mouseDoubleClickEvent(QMouseEvent *event)
виртуальный void mouseMoveEvent(QMouseEvent *event)
виртуальный void mousePressEvent(QMouseEvent *event)
виртуальный void mouseReleaseEvent(QMouseEvent *event)
виртуальный void paintEvent(QPaintEvent *event)
виртуальный void resizeEvent(QResizeEvent *event)
виртуальный void scrollContentsBy(int dx, int dy)
виртуальный void showEvent(QShowEvent *event)
виртуальный bool viewportEvent(QEvent *event)
виртуальный void wheelEvent(QWheelEvent *event)
  • 20 защищённых функций унаследованных от QAbstractScrollArea
  • 4 защищённых функций унаследованных от QFrame
  • 35 защищённых функций унаследованных от QWidget
  • 9 защищённых функций унаследованных от QObject
  • 1 защищённая функция унаследованная от QPaintDevice

Защищённые слоты

виртуальный void setupViewport(QWidget *widget)
  • 1 защищённый слот унаследованный от QWidget

Дополнительные унаследованные члены

  • 5 статических публичных членов унаследованных от QWidget
  • 11 статических публичных членов унаследованных от QObject

Подробное описание

Класс QGraphicsView предоставляет виджет для отображения содержимого QGraphicsScene.

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

Для визуализации сцены, вы начинаете с создания объекта QGraphicsView, передавая адрес сцены, которую вы хотите визуализировать, в конструктор QGraphicsView. В качестве альтернативы, вы можете вызвать setScene() для установки сцены в более поздний момент. После вызова show(), отображение по умолчанию прокрутится к центру сцены и отобразит все элементы, которые видны в данный момент. Например:

QGraphicsScene scene;
scene.addText("Hello, world!");

QGraphicsView view(&scene);
view.show();

Вы можете явно прокрутить к любой позиции на сцене, используя полосы прокрутки или вызвав centerOn(). Передавая точку в centerOn(), QGraphicsView прокрутит своё представление так, чтобы точка оказалась в центре. Предоставлен перегруженный метод для прокрутки к QGraphicsItem, в этом случае QGraphicsView переместит центр элемента в центр представления. Если вам нужно лишь убедиться, что определённый участок виден (но не обязательно в центре), вы можете вызвать ensureVisible() вместо этого.

QGraphicsView может использоваться для визуализации всей сцены или только её частей. Визуализируемая область по умолчанию обнаруживается автоматически при первом отображении представления (вызовом QGraphicsScene::itemsBoundingRect()). Чтобы установить визуализируемую область прямоугольника, вы можете вызвать setSceneRect(). Это соответствующим образом скорректирует диапазоны полос прокрутки. Обратите внимание, что хотя сцена поддерживает практически неограниченный размер, диапазон полос прокрутки никогда не превысит диапазон целого числа (INT_MIN, INT_MAX).

QGraphicsView визуализирует сцену, вызывая render(). По умолчанию элементы рисуются на представление с помощью стандартного QPainter и с использованием стандартных параметров рендеринга. Чтобы изменить стандартные параметры рендеринга, которые QGraphicsView передаёт в QPainter при рисовании элементов, вы можете вызвать setRenderHints().

По умолчанию, QGraphicsView предоставляет стандартный виджет QWidget для виджета представления. Вы можете получить доступ к этому виджету, вызвав viewport(), или вы можете заменить его, вызвав setViewport(). Для рендеринга с использованием OpenGL, просто вызовите setViewport(new QGLWidget). QGraphicsView берёт на себя владение виджетом представления.

QGraphicsView поддерживает аффинные преобразования, используя QTransform. Вы можете либо передать матрицу в setTransform(), либо вызвать одну из удобных функций rotate(), scale(), translate() или shear(). Наиболее распространённые преобразования - масштабирование, которое используется для масштабирования, и поворот. QGraphicsView сохраняет центр представления фиксированным во время преобразования. Из-за выравнивания сцены (setAligment()), перемещение представления не повлияет на отображение.

Вы можете взаимодействовать с элементами на сцене, используя мышь и клавиатуру. QGraphicsView преобразует события мыши и клавиатуры в сценические события (события, которые наследуют от QGraphicsSceneEvent) и передаёт их визуализируемой сцене. В конечном итоге, именно отдельный элемент обрабатывает события и реагирует на них. Например, если вы щелкнули по выделяемому элементу, элемент обычно сообщает сцене, что он был выбран, и также перерисовывает себя, чтобы отобразить прямоугольник выделения. Аналогично, если вы нажимаете и перетаскиваете мышь, чтобы переместить перемещаемый элемент, именно элемент обрабатывает перемещения мыши и перемещает себя. Взаимодействие с элементами включено по умолчанию, и вы можете отключить его, вызвав setInteractive().

Вы также можете предоставить собственное пользовательское взаимодействие со сценой, создав подкласс QGraphicsView и переопределив обработчики событий мыши и клавиатуры. Чтобы упростить программирование взаимодействия с элементами в представлении, QGraphicsView предоставляет функции отображения mapToScene() и mapFromScene(), а также элементы доступа к элементам items() и itemAt(). Эти функции позволяют вам сопоставлять точки, прямоугольники, многоугольники и пути между координатами представления и координатами сцены, а также находить элементы на сцене, используя координаты представления.

См. также QGraphicsScene, QGraphicsItem и QGraphicsSceneEvent.

Документация по типам членов

enum QGraphicsView::CacheModeFlagflags QGraphicsView::CacheMode

Этот перечисление описывает флаги, которые можно установить для режима кэширования QGraphicsView.

Константа Значение Описание
QGraphicsView::CacheNone 0x0 Все отрисовки выполняются непосредственно на области просмотра.
QGraphicsView::CacheBackground 0x1 Фон кэшируется. Это влияет как на пользовательские фоны, так и на фоны, основанные на свойстве backgroundBrush. При включенном флаге QGraphicsView выделит один растровый образ с полными размерами области просмотра.

Тип CacheMode — это псевдоним для QFlags<CacheModeFlag>. Он хранит комбинацию значений CacheModeFlag, объединённых операцией OR.

См. также cacheMode.

enum QGraphicsView::DragMode

Это перечисление описывает стандартное действие для просмотра при нажатии и перетаскивании мыши по области просмотра.

Константа Значение Описание
QGraphicsView::NoDrag 0 Ничего не происходит; событие мыши игнорируется.
QGraphicsView::ScrollHandDrag 1 Курсор изменяется на указатель руки, и перетаскивание мыши будет прокручивать полосы прокрутки. Этот режим работает как в интерактивном, так и в неинтерактивном режиме.
QGraphicsView::RubberBandDrag 2 Появится резиновый прямоугольник. Перетаскивание мыши установит геометрию резинового прямоугольника, и все элементы, покрытые резиновым прямоугольником, будут выбраны. Этот режим отключён для неинтерактивных просмотров.

См. также dragMode и QGraphicsScene::setSelectionArea().

enum QGraphicsView::OptimizationFlagflags QGraphicsView::OptimizationFlags

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

Константа Значение Описание
QGraphicsView::DontClipPainter 0x1 Это значение устарело и не имеет эффекта.
QGraphicsView::DontSavePainterState 0x2 При отрисовке QGraphicsView защищает состояние рисования (см. QPainter::save()) при отрисовке фона или переднего плана, а также при отрисовке каждого элемента. Это позволяет вам оставить рисовалку в изменённом состоянии (т.е. вы можете вызвать QPainter::setPen() или QPainter::setBrush() без восстановления состояния после отрисовки). Однако, если элементы последовательно восстанавливают состояние, следует включить этот флаг, чтобы предотвратить QGraphicsView от выполнения аналогичного действия.
QGraphicsView::DontAdjustForAntialiasing 0x4 Отключает автоматическую подстройку антиалиасинга QGraphicsView для видимых областей. Элементы, которые рисуют антиалиасинговые линии на границах своего QGraphicsItem::boundingRect(), могут отрисовывать части линии за пределами области. Для предотвращения артефактов отрисовки QGraphicsView расширяет все видимые области на 2 пикселя во всех направлениях. Если включить этот флаг, QGraphicsView больше не будет выполнять эти корректировки, сводя к минимуму области, требующие перерисовки, что улучшает производительность. Частым побочным эффектом является то, что элементы, которые действительно рисуют с антиалиасингом, могут оставлять следы отрисовки на сцене при их перемещении.
QGraphicsView::IndirectPainting 0x8 С Qt 4.6, восстанавливается старый алгоритм отрисовки, который вызывает QGraphicsView::drawItems() и QGraphicsScene::drawItems(). Используется только для совместимости со старым кодом.

Это перечисление было введено или изменено в Qt 4.3.

Тип OptimizationFlags — это псевдоним для QFlags<OptimizationFlag>. Он хранит комбинацию значений OptimizationFlag, объединённых операцией OR.

enum QGraphicsView::ViewportAnchor

Это перечисление описывает возможные якоря, которые может использовать QGraphicsView при изменении размера пользователем или при преобразовании просмотра.

Константа Значение Описание
QGraphicsView::NoAnchor 0 Без якоря, т.е. просмотр оставляет положение сцены неизменным.
QGraphicsView::AnchorViewCenter 1 Точка сцены в центре просмотра используется в качестве якоря.
QGraphicsView::AnchorUnderMouse 2 Точка под курсором используется в качестве якоря.

См. также resizeAnchor и transformationAnchor.

enum QGraphicsView::ViewportUpdateMode

Это перечисление описывает, как QGraphicsView обновляет область просмотра при изменении или отображении содержимого сцены.

Константа Значение Описание
QGraphicsView::FullViewportUpdate 0 При изменении или повторном отображении любой видимой части сцены QGraphicsView обновит всю область просмотра. Этот подход является наиболее быстрым, когда QGraphicsView тратит больше времени на определение того, что рисовать, чем на отрисовку (например, когда обновляются многие мелкие элементы). Это предпочтительный режим обновления для областей просмотра, которые не поддерживают частичные обновления, таких как QGLWidget, и для областей просмотра, которые должны отключить оптимизацию прокрутки.
QGraphicsView::MinimalViewportUpdate 1 QGraphicsView определит минимальную область области просмотра, которая требует перерисовки, сводя к минимуму время, затрачиваемое на отрисовку, избегая перерисовки областей, которые не изменились. Это режим по умолчанию для QGraphicsView. Хотя этот подход обеспечивает наилучшую производительность в целом, если на сцене много небольших видимых изменений, QGraphicsView может потратить больше времени на поиск минимального подхода, чем на отрисовку.
QGraphicsView::SmartViewportUpdate 2 QGraphicsView попытается найти оптимальный режим обновления, проанализировав области, которые требуют перерисовки.
QGraphicsView::BoundingRectViewportUpdate 4 Будет перерисована ограничивающая прямоугольник всех изменений в области просмотра. Этот режим имеет преимущество, что QGraphicsView ищет только одну область для изменений, сводя к минимуму время, затрачиваемое на определение того, что нуждается в перерисовке. Недостаток заключается в том, что области, которые не изменились, также необходимо перерисовать.
QGraphicsView::NoViewportUpdate 3 QGraphicsView никогда не будет обновлять свою область просмотра при изменении сцены; ожидается, что пользователь будет контролировать все обновления. Этот режим отключает все (потенциально медленные) проверки видимости элементов в QGraphicsView и подходит для сцен, которые требуют фиксированной частоты кадров или где область просмотра обновляется внешним образом.

Это перечисление было введено или изменено в Qt 4.3.

См. также viewportUpdateMode.

END_OF_DOCUMENT_MARKER

Документация свойств

alignment : Qt::Alignment

Это свойство содержит выравнивание сцены в представлении, когда вся сцена видна.

Если вся сцена видна в представлении (т.е., нет видимых полос прокрутки), выравнивание представления определит, где будет отрисована сцена в представлении. Например, если выравнивание равно Qt::AlignCenter, что является значением по умолчанию, сцена будет центрирована в представлении, а если выравнивание равно (Qt::AlignLeft | Qt::AlignTop), сцена будет отрисована в левом верхнем углу представления.

Функции доступа:

Qt::Alignment alignment() const
void setAlignment(Qt::Alignment alignment)

backgroundBrush : QBrush

Это свойство содержит кисть фона сцены.

Это свойство задаёт кисть фона для сцены в этом представлении. Оно используется для переопределения собственного фона сцены и определяет поведение drawBackground(). Для предоставления пользовательской отрисовки фона для этого представления можно переопределить drawBackground() вместо этого.

По умолчанию это свойство содержит кисть с шаблоном Qt::NoBrush.

Функции доступа:

QBrush backgroundBrush() const
void setBackgroundBrush(const QBrush &brush)

См. также QGraphicsScene::backgroundBrush и foregroundBrush.

cacheMode : CacheMode

Это свойство определяет, какие части представления кешируются.

QGraphicsView может кешировать предварительно рендерный контент в QPixmap, который затем отрисовывается на область просмотра. Цель такого кеширования — ускорить общее время рендеринга для областей, которые медленно рендерятся. Например, текстуры, градиенты и фона с альфа-смешиванием могут рендериться довольно медленно, особенно с преобразованным представлением. Флаг CacheBackground позволяет кешировать фон представления. Например:

QGraphicsView view;
view.setBackgroundBrush(QImage(":/images/backgroundtile.png"));
view.setCacheMode(QGraphicsView::CacheBackground);

Кэш инвалидируется каждый раз, когда представление преобразуется. Однако при прокрутке требуется только частичная инвалидизация.

По умолчанию ничего не кешируется.

Функции доступа:

CacheMode cacheMode() const
void setCacheMode(CacheMode mode)

См. также resetCachedContent() и QPixmapCache.

dragMode : DragMode

Это свойство определяет поведение при перетаскивании мыши по сцене, когда нажата левая кнопка мыши.

Это свойство определяет, что должно произойти, когда пользователь нажимает на фон сцены и перетаскивает мышь (например, прокручивает содержимое области просмотра с помощью курсора руки или выбирает несколько элементов с помощью прямоугольника выделения). Значение по умолчанию, NoDrag, ничего не делает.

Это поведение влияет только на щелчки мышью, которые не обрабатываются ни одним элементом. Вы можете определить пользовательское поведение, создав подкласс QGraphicsView и переопределив mouseMoveEvent().

Функции доступа:

DragMode dragMode() const
void setDragMode(DragMode mode)

foregroundBrush : QBrush

Это свойство содержит кисть переднего плана сцены.

Это свойство задаёт кисть переднего плана для сцены в этом представлении. Оно используется для переопределения собственного переднего плана сцены и определяет поведение drawForeground(). Для предоставления пользовательской отрисовки переднего плана для этого представления можно переопределить drawForeground() вместо этого.

По умолчанию это свойство содержит кисть с шаблоном Qt::NoBrush.

Функции доступа:

QBrush foregroundBrush() const
void setForegroundBrush(const QBrush &brush)

См. также QGraphicsScene::foregroundBrush и backgroundBrush.

interactive : bool

Это свойство определяет, разрешена ли интеракция со сценой в представлении.

Если включено, это представление позволяет взаимодействие со сценой. В противном случае это представление не позволит взаимодействие, и любые события мыши или клавиатуры будут игнорироваться (т.е. оно будет действовать как только для чтения представление).

По умолчанию это свойство равно true.

Функции доступа:

bool isInteractive() const
void setInteractive(bool allowed)

optimizationFlags : OptimizationFlags

Флаги, которые могут использоваться для настройки производительности QGraphicsView.

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

Эффект различается в зависимости от флага; см. документацию по OptimizationFlags для получения подробной информации.

По умолчанию оптимизационные флаги не включены.

Это свойство было добавлено в Qt 4.3.

Функции доступа:

OptimizationFlags optimizationFlags() const
void setOptimizationFlags(OptimizationFlags flags)

См. также setOptimizationFlag().

renderHints : QPainter::RenderHints

Это свойство содержит значения по умолчанию для рендеринга представления.

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

По умолчанию включен QPainter::TextAntialiasing.

Пример:

QGraphicsScene scene;
scene.addRect(QRectF(-10, -10, 20, 20));

QGraphicsView view(&scene);
view.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
view.show();

Функции доступа:

QPainter::RenderHints renderHints() const
void setRenderHints(QPainter::RenderHints hints)

resizeAnchor : ViewportAnchor

как представление должно размещать сцену при изменении размера представления.

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

Обратите внимание, что эффект этого свойства заметен, когда видна только часть сцены (т.е. когда есть полосы прокрутки). В противном случае, если вся сцена помещается в представление, QGraphicsScene использует выравнивание представления alignment для позиционирования сцены в представлении.

Функции доступа:

ViewportAnchor resizeAnchor() const
void setResizeAnchor(ViewportAnchor anchor)

См. также alignment и transformationAnchor.

rubberBandSelectionMode : Qt::ItemSelectionMode

Это свойство определяет поведение при выборе элементов с помощью прямоугольника выделения.

Это свойство определяет, как элементы выбираются при использовании режима перетаскивания RubberBandDrag.

Значение по умолчанию — Qt::IntersectsItemShape; все элементы, чья форма пересекается с или содержится в резиновой полосе, выбираются.

Это свойство было добавлено в Qt 4.3.

Функции доступа:

Qt::ItemSelectionMode rubberBandSelectionMode() const
void setRubberBandSelectionMode(Qt::ItemSelectionMode mode)

См. также dragMode, items() и rubberBandRect().

sceneRect : QRectF

Это свойство содержит область сцены, визуализируемой в данном представлении.

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

Если свойство не задано или если установлен нулевой QRectF, это свойство имеет то же значение, что и QGraphicsScene::sceneRect, и изменяется вместе с QGraphicsScene::sceneRect. В противном случае прямоугольник сцены представления не зависит от сцены.

Обратите внимание, что, хотя сцена поддерживает практически неограниченный размер, диапазон полос прокрутки никогда не превысит диапазон целого числа (INT_MIN, INT_MAX). Когда сцена больше, чем значения полос прокрутки, можно использовать translate(), чтобы перемещать сцену.

По умолчанию это свойство содержит прямоугольник в начале координат с нулевой шириной и высотой.

Функции доступа:

QRectF sceneRect() const
void setSceneRect(const QRectF &rect)
void setSceneRect(qreal x, qreal y, qreal w, qreal h)

См. также QGraphicsScene::sceneRect.

transformationAnchor : ViewportAnchor

как представление должно позиционировать сцену во время преобразований.

QGraphicsView использует это свойство для определения того, как позиционировать сцену в представлении при изменении матрицы преобразования и преобразовании системы координат представления. Поведение по умолчанию, AnchorViewCenter, гарантирует, что точка сцены в центре представления остается неизменной во время преобразований (например, при повороте сцена будет вращаться вокруг центра представления).

Обратите внимание, что эффект этого свойства заметен, когда видна только часть сцены (т.е. когда есть полосы прокрутки). В противном случае, если вся сцена помещается в представление, QGraphicsScene использует выравнивание представления для позиционирования сцены в представлении.

Функции доступа:

ViewportAnchor transformationAnchor() const
void setTransformationAnchor(ViewportAnchor anchor)

См. также alignment и resizeAnchor.

viewportUpdateMode : ViewportUpdateMode

как представление должно обновлять своё содержимое.

QGraphicsView использует это свойство для определения того, как обновлять области сцены, которые были повторно отображены или изменены. Обычно вам не нужно изменять это свойство, но есть некоторые случаи, когда это может улучшить производительность отрисовки. См. документацию ViewportUpdateMode для подробной информации.

Значение по умолчанию — MinimalViewportUpdate, где QGraphicsView будет обновлять как можно меньшую область представления при изменении содержимого.

Это свойство было добавлено в Qt 4.3.

Функции доступа:

ViewportUpdateMode viewportUpdateMode() const
void setViewportUpdateMode(ViewportUpdateMode mode)

См. также ViewportUpdateMode и cacheMode.

Документация по функциям-членам

QGraphicsView::QGraphicsView(QWidget *parent = Q_NULLPTR)

Конструирует QGraphicsView. parent передаётся конструктору QWidget.

QGraphicsView::QGraphicsView(QGraphicsScene *scene, QWidget *parent = Q_NULLPTR)

Конструирует QGraphicsView и устанавливает визуализируемую сцену в scene. parent передаётся конструктору QWidget.

QGraphicsView::~QGraphicsView()

Деструктор объекта QGraphicsView.

void QGraphicsView::centerOn(const QPointF &pos)

Прокручивает содержимое представления, чтобы гарантировать, что координата сцены pos расположена в центре представления.

Так как pos — координата с плавающей запятой, а полосы прокрутки работают с целыми координатами, центрирование является лишь приближением.

Примечание: Если элемент близок к границе или находится за пределами её, он будет виден в представлении, но не центрирован.

См. также ensureVisible().

void QGraphicsView::centerOn(qreal x, qreal y)

Это перегруженная функция.

Эта функция предоставляется для удобства. Она эквивалентна вызову centerOn(QPointF(x, y)).

void QGraphicsView::centerOn(const QGraphicsItem *item)

Это перегруженная функция.

Прокручивает содержимое представления, чтобы гарантировать, что item находится в центре представления.

См. также ensureVisible().

void QGraphicsView::contextMenuEvent(QContextMenuEvent *event)

Переопределено из QWidget::contextMenuEvent().

void QGraphicsView::dragEnterEvent(QDragEnterEvent *event)

Переопределено из QWidget::dragEnterEvent().

void QGraphicsView::dragLeaveEvent(QDragLeaveEvent *event)

Переопределено из QWidget::dragLeaveEvent().

void QGraphicsView::dragMoveEvent(QDragMoveEvent *event)

Переопределено из QWidget::dragMoveEvent().

void QGraphicsView::drawBackground(QPainter *painter, const QRectF &rect)

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

Если вам нужно только определить цвет, текстуру или градиент фона, можно использовать setBackgroundBrush() вместо этого.

Все отрисовки выполняются в координатах сцены. rect — это отображаемый прямоугольник.

По умолчанию реализация заполняет rect используя backgroundBrush представления. Если такой кисти нет (что по умолчанию), вызывается функция drawBackground() сцены.

См. также drawForeground() и QGraphicsScene::drawBackground().

void QGraphicsView::drawForeground(QPainter *painter, const QRectF &rect)

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

Если вам нужно только определить цвет, текстуру или градиент переднего плана, можно использовать setForegroundBrush() вместо этого.

Все отрисовки выполняются в координатах сцены. rect — это отображаемый прямоугольник.

По умолчанию реализация заполняет rect используя foregroundBrush представления. Если такой кисти нет (что по умолчанию), вызывается функция drawForeground() сцены.

См. также drawBackground() и QGraphicsScene::drawForeground().

[virtual protected] void QGraphicsView::dropEvent(QDropEvent *event)

Переопределено из QWidget::dropEvent().

void QGraphicsView::ensureVisible(const QRectF &rect, int xmargin = 50, int ymargin = 50)

Прокручивает содержимое области просмотра так, чтобы прямоугольник сцены rect был виден с отступами, заданными в пикселях xmargin и ymargin. Если указанный прямоугольник недоступен, содержимое прокручивается до ближайшей допустимой позиции. Значение по умолчанию для обоих отступов составляет 50 пикселей.

См. также centerOn().

void QGraphicsView::ensureVisible(qreal x, qreal y, qreal w, qreal h, int xmargin = 50, int ymargin = 50)

Это перегруженный метод.

Этот метод предоставляется для удобства. Он эквивалентен вызову ensureVisible(QRectF(x, y, w, h), xmargin, ymargin).

void QGraphicsView::ensureVisible(const QGraphicsItem *item, int xmargin = 50, int ymargin = 50)

Это перегруженный метод.

Прокручивает содержимое области просмотра так, чтобы центр элемента item был виден с отступами, заданными в пикселях xmargin и ymargin. Если указанную точку невозможно достичь, содержимое прокручивается до ближайшей допустимой позиции. Значение по умолчанию для обоих отступов составляет 50 пикселей.

См. также centerOn().

[virtual protected] bool QGraphicsView::event(QEvent *event)

Переопределено из QObject::event().

void QGraphicsView::fitInView(const QRectF &rect, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)

Масштабирует матрицу просмотра и прокручивает полосы прокрутки так, чтобы прямоугольник сцены rect помещался внутри области просмотра. rect должен находиться внутри прямоугольника сцены; в противном случае fitInView() не может гарантировать, что весь прямоугольник будет виден.

Этот метод сохраняет поворот, трансляцию или сдвиг просмотра. Просмотр масштабируется в соответствии с aspectRatioMode. rect будет центрирован в окне, если он не поместится плотно.

Часто fitInView() вызывается из реализации resizeEvent() для обеспечения автоматического масштабирования всей сцены или её частей в соответствии с новым размером области просмотра при изменении размера окна. Однако обратите внимание, что вызов fitInView() из resizeEvent() может привести к нежелательной рекурсии изменения размера, если новая трансформация переключает автоматический режим полос прокрутки. Вы можете переключить политику полос прокрутки на всегда включено или всегда выключено, чтобы предотвратить это (см. horizontalScrollBarPolicy() и verticalScrollBarPolicy()).

Если rect пустой или область просмотра слишком маленькая, этот метод ничего не сделает.

См. также setTransform(), ensureVisible() и centerOn().

void QGraphicsView::fitInView(qreal x, qreal y, qreal w, qreal h, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)

Это перегруженный метод.

Этот удобный метод эквивалентен вызову fitInView(QRectF(x, y, w, h), aspectRatioMode).

См. также ensureVisible() и centerOn().

void QGraphicsView::fitInView(const QGraphicsItem *item, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)

Это перегруженный метод.

Обеспечивает плотное размещение item внутри окна, масштабируя окно в соответствии с aspectRatioMode.

См. также ensureVisible() и centerOn().

[virtual protected] void QGraphicsView::focusInEvent(QFocusEvent *event)

Переопределено из QWidget::focusInEvent().

[virtual protected] bool QGraphicsView::focusNextPrevChild(bool next)

Переопределено из QWidget::focusNextPrevChild().

[virtual protected] void QGraphicsView::focusOutEvent(QFocusEvent *event)

Переопределено из QWidget::focusOutEvent().

[virtual protected] void QGraphicsView::inputMethodEvent(QInputMethodEvent *event)

Переопределено из QWidget::inputMethodEvent().

[virtual] QVariant QGraphicsView::inputMethodQuery(Qt::InputMethodQuery query) const

Переопределено из QWidget::inputMethodQuery().

[slot] void QGraphicsView::invalidateScene(const QRectF &rect = QRectF(), QGraphicsScene::SceneLayers layers = QGraphicsScene::AllLayers)

Делает недействительной и планирует перерисовку слоёв layers внутри rect. rect задаётся в координатах сцены. Любое кэшированное содержимое для layers внутри rect безусловно делается недействительным и перерисовывается.

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

Обратите внимание, что QGraphicsView в настоящее время поддерживает только кэширование фона (см. QGraphicsView::CacheBackground). Этот метод эквивалентен вызову update() если передан любой слой, кроме QGraphicsScene::BackgroundLayer.

См. также QGraphicsScene::invalidate() и update().

bool QGraphicsView::isTransformed() const

Возвращает true, если просмотр преобразован (т.е., присвоена нетождественная трансформация или скорректированы полосы прокрутки).

Этот метод был введён в Qt 4.6.

См. также setTransform(), horizontalScrollBar() и verticalScrollBar().

QGraphicsItem *QGraphicsView::itemAt(const QPoint &pos) const

Возвращает элемент в позиции pos, которая задаётся в координатах области просмотра. Если в этой позиции несколько элементов, этот метод возвращает самый верхний.

Пример:

void CustomView::mousePressEvent(QMouseEvent *event)
{
    if (QGraphicsItem *item = itemAt(event->pos())) {
        qDebug() << "You clicked on item" << item;
    } else {
        qDebug("You didn't click on an item.");
    }
}

См. также items() и Сортировка.

QGraphicsItem *QGraphicsView::itemAt(int x, int y) const

Это перегруженный метод.

Этот метод предоставляется для удобства. Он эквивалентен вызову itemAt(QPoint(x, y)).

QList<QGraphicsItem *> QGraphicsView::items() const

Возвращает список всех элементов в связанной сцении, в порядке убывания стека (т.е., первый элемент в возвращаемом списке является самым верхним).

См. также QGraphicsScene::items() и Сортировка.

QList<QGraphicsItem *> QGraphicsView::items(const QPoint &pos) const

Возвращает список всех элементов в позиции pos в представлении. Элементы перечислены в порядке убывания стековой последовательности (т.е. первый элемент в списке — самый верхний, а последний — самый нижний). pos указан в координатах области просмотра.

Эта функция чаще всего вызывается из обработчиков событий мыши в подклассе QGraphicsView. pos указан в не преобразованных координатах области просмотра, как и QMouseEvent::pos().

void CustomView::mousePressEvent(QMouseEvent *event)
{
    qDebug() << "There are" << items(event->pos()).size()
             << "items at position" << mapToScene(event->pos());
}

См. также QGraphicsScene::items() и Сортировка.

QList<QGraphicsItem *> QGraphicsView::items(int x, int y) const

Эта функция предоставляется для удобства. Она эквивалентна вызову items(QPoint(x, y)).

QList<QGraphicsItem *> QGraphicsView::items(const QRect &rect, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const

Это перегруженная функция.

Возвращает список всех элементов, которые, в зависимости от mode, либо содержатся в, либо пересекаются с rect. rect указана в координатах области просмотра.

Значение по умолчанию для mode — Qt::IntersectsItemShape; возвращаются все элементы, чья точная форма пересекается или содержится в rect.

Элементы отсортированы в порядке убывания стековой последовательности (т.е. первый элемент в возвращаемом списке — самый верхний элемент).

См. также itemAt(), items(), mapToScene(), и Сортировка.

QList<QGraphicsItem *> QGraphicsView::items(int x, int y, int w, int h, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const

Эта вспомогательная функция эквивалентна вызову items(QRectF(x, y, w, h), mode).

Эта функция была добавлена в Qt 4.3.

QList<QGraphicsItem *> QGraphicsView::items(const QPolygon &polygon, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const

Это перегруженная функция.

Возвращает список всех элементов, которые, в зависимости от mode, либо содержатся в, либо пересекаются с polygon. polygon указана в координатах области просмотра.

Значение по умолчанию для mode — Qt::IntersectsItemShape; возвращаются все элементы, чья точная форма пересекается или содержится в polygon.

Элементы отсортированы в порядке убывания стековой последовательности (т.е. первый элемент в возвращаемом списке — самый верхний элемент).

См. также itemAt(), items(), mapToScene(), и Сортировка.

QList<QGraphicsItem *> QGraphicsView::items(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const

Это перегруженная функция.

Возвращает список всех элементов, которые, в зависимости от mode, либо содержатся в, либо пересекаются с path. path указана в координатах области просмотра.

Значение по умолчанию для mode — Qt::IntersectsItemShape; возвращаются все элементы, чья точная форма пересекается или содержится в path.

См. также itemAt(), items(), mapToScene(), и Сортировка.

[virtual protected] void QGraphicsView::keyPressEvent(QKeyEvent *event)

Переопределено из QWidget::keyPressEvent().

[virtual protected] void QGraphicsView::keyReleaseEvent(QKeyEvent *event)

Переопределено из QWidget::keyReleaseEvent().

QPoint QGraphicsView::mapFromScene(const QPointF &point) const

Возвращает сценную координату point в координаты области просмотра.

См. также mapToScene().

QPolygon QGraphicsView::mapFromScene(const QRectF &rect) const

Возвращает прямоугольник сцены rect в полигон координат области просмотра.

См. также mapToScene().

QPolygon QGraphicsView::mapFromScene(const QPolygonF &polygon) const

Возвращает полигон сцены polygon в полигон координат области просмотра.

См. также mapToScene().

QPainterPath QGraphicsView::mapFromScene(const QPainterPath &path) const

Возвращает путь отрисовки сцены path в путь отрисовки координат области просмотра.

См. также mapToScene().

QPoint QGraphicsView::mapFromScene(qreal x, qreal y) const

Эта функция предоставляется для удобства. Она эквивалентна вызову mapFromScene(QPointF(x, y)).

QPolygon QGraphicsView::mapFromScene(qreal x, qreal y, qreal w, qreal h) const

Эта функция предоставляется для удобства. Она эквивалентна вызову mapFromScene(QRectF(x, y, w, h)).

QPointF QGraphicsView::mapToScene(const QPoint &point) const

Возвращает координату области просмотра point, преобразованную в координаты сцены.

Примечание: может быть полезно преобразовать весь прямоугольник, охватываемый пикселем в point, вместо самой точки. Для этого можно вызвать mapToScene(QRect(point, QSize(2, 2))).

См. также mapFromScene().

QPolygonF QGraphicsView::mapToScene(const QRect &rect) const

Возвращает прямоугольник области просмотра rect, преобразованный в полигон координат сцены.

См. также mapFromScene().

QPolygonF QGraphicsView::mapToScene(const QPolygon &polygon) const

Возвращает полигон области просмотра polygon, преобразованный в полигон координат сцены.

См. также mapFromScene().

QPainterPath QGraphicsView::mapToScene(const QPainterPath &path) const

Возвращает путь отрисовки области просмотра path, преобразованный в путь отрисовки координат сцены.

См. также mapFromScene().

QPointF QGraphicsView::mapToScene(int x, int y) const

Эта функция предоставляется для удобства. Она эквивалентна вызову mapToScene(QPoint(x, y)).

QPolygonF QGraphicsView::mapToScene(int x, int y, int w, int h) const

Эта функция предоставляется для удобства. Она эквивалентна вызову mapToScene(QRect(x, y, w, h)).

QMatrix QGraphicsView::matrix() const

Возвращает текущую матрицу преобразования для представления. Если текущее преобразование не задано, возвращается единичная матрица.

См. также setMatrix(), transform(), rotate(), scale(), shear(), и translate().

[virtual protected] void QGraphicsView::mouseDoubleClickEvent(QMouseEvent *event)

Переопределено из QWidget::mouseDoubleClickEvent().

[virtual protected] void QGraphicsView::mouseMoveEvent(QMouseEvent *event)

Переопределено из QWidget::mouseMoveEvent().

[virtual protected] void QGraphicsView::mousePressEvent(QMouseEvent *event)

Переопределено из QWidget::mousePressEvent().

[virtual protected] void QGraphicsView::mouseReleaseEvent(QMouseEvent *event)

Переопределено из QWidget::mouseReleaseEvent().

[virtual protected] void QGraphicsView::paintEvent(QPaintEvent *event)

Переопределено из QWidget::paintEvent().

void QGraphicsView::render(QPainter *painter, const QRectF &target = QRectF(), const QRect &source = QRect(), Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio)

Отображает прямоугольник source, заданный в координатах представления, со сцены в target, заданный в координатах устройства рисования, используя painter. Эта функция полезна для захвата содержимого представления на устройстве рисования, например, на QImage (например, для создания скриншота) или для печати на QPrinter. Например:

QGraphicsScene scene;
scene.addItem(...
...

QGraphicsView view(&scene);
view.show();
...

QPrinter printer(QPrinter::HighResolution);
printer.setPageSize(QPrinter::A4);
QPainter painter(&printer);

// print, fitting the viewport contents into a full page
view.render(&painter);

// print the upper half of the viewport into the lower.
// half of the page.
QRect viewport = view.viewport()->rect();
view.render(&painter,
            QRectF(0, printer.height() / 2,
                   printer.width(), printer.height() / 2),
            viewport.adjusted(0, 0, 0, -viewport.height() / 2));

Если source — это пустой прямоугольник, эта функция будет использовать viewport()->rect() для определения того, что нужно рисовать. Если target — это пустой прямоугольник, будут использоваться полные размеры устройства рисования painter (например, для QPrinter — размеры страницы).

Содержимое прямоугольника source будет преобразовано в соответствии с aspectRatioMode, чтобы поместиться в прямоугольник target. По умолчанию соотношение сторон сохраняется, и source масштабируется для размещения в target.

См. также QGraphicsScene::render().

void QGraphicsView::resetCachedContent()

Сбрасывает все кэшированные данные. Вызов этой функции очистит кэш QGraphicsView. Если текущий режим кэширования — CacheNone, эта функция ничего не делает.

Эта функция вызывается автоматически, когда изменяются свойства backgroundBrush или QGraphicsScene::backgroundBrush; вам нужно вызвать эту функцию только если вы переопределили QGraphicsScene::drawBackground() или QGraphicsView::drawBackground() для рисования пользовательского фона и необходимо вызвать полную перерисовку.

См. также cacheMode().

void QGraphicsView::resetMatrix()

Сбрасывает матрицу преобразования представления до единичной матрицы.

См. также resetTransform().

void QGraphicsView::resetTransform()

Сбрасывает преобразование представления до единичной матрицы.

См. также transform() и setTransform().

[virtual protected] void QGraphicsView::resizeEvent(QResizeEvent *event)

Переопределено из QWidget::resizeEvent().

void QGraphicsView::rotate(qreal angle)

Поворачивает текущее преобразование представления на angle градусов по часовой стрелке.

См. также setTransform(), transform(), scale(), shear() и translate().

[signal] void QGraphicsView::rubberBandChanged(QRect rubberBandRect, QPointF fromScenePoint, QPointF toScenePoint)

Этот сигнал излучается, когда прямоугольник резиновой ленты изменяется. Прямоугольник представления задаётся параметром rubberBandRect. Начальная и конечная позиции перемещения задаются в координатах сцены с помощью параметров fromScenePoint и toScenePoint.

При завершении выбора резиновой лентой этот сигнал будет излучен с нулевыми значениями.

Функция была добавлена в Qt 5.1.

См. также rubberBandRect().

QRect QGraphicsView::rubberBandRect() const

Эта функция возвращает текущую область резиновой ленты (в координатах представления), если пользователь в настоящее время выполняет выбор элемента с помощью резиновой ленты. Когда пользователь не использует резиновую ленту, эта функция возвращает пустой QRectF().

Обратите внимание, что часть этого прямоугольника QRect может находиться вне визуального представления. Например, она может содержать отрицательные значения.

Функция была добавлена в Qt 5.1.

См. также rubberBandSelectionMode и rubberBandChanged().

void QGraphicsView::scale(qreal sx, qreal sy)

Масштабирует текущее преобразование представления на (sx, sy).

См. также setTransform(), transform(), rotate(), shear() и translate().

QGraphicsScene *QGraphicsView::scene() const

Возвращает указатель на сцену, которая в настоящее время визуализируется в представлении. Если сцена в настоящее время не визуализируется, возвращается 0.

См. также setScene().

[virtual protected] void QGraphicsView::scrollContentsBy(int dx, int dy)

Переопределено из QAbstractScrollArea::scrollContentsBy().

void QGraphicsView::setMatrix(const QMatrix &matrix, bool combine = false)

Устанавливает текущую матрицу преобразования представления на matrix.

Если combine равно true, то matrix объединяется с текущей матрицей; в противном случае matrix заменяет текущую матрицу. По умолчанию combine равно false.

Матрица преобразования преобразует сцену в координаты представления. Используя стандартное преобразование, задаваемое единичной матрицей, один пиксель в представлении соответствует одному единичному значению на сцене (например, прямоугольный элемент 10x10 отображается с помощью 10x10 пикселей в представлении). Если применена матрица масштабирования 2x2, сцена будет отображаться с масштабом 1:2 (например, прямоугольный элемент 10x10 отображается с помощью 20x20 пикселей в представлении).

Пример:

QGraphicsScene scene;
scene.addText("GraphicsView rotated clockwise");

QGraphicsView view(&scene);
view.rotate(90); // the text is rendered with a 90 degree clockwise rotation
view.show();

Для упрощения работы с элементами, используя преобразованное представление, QGraphicsView предоставляет функции mapTo... и mapFrom..., которые могут выполнять преобразование между координатами сцены и представления. Например, вы можете вызвать mapToScene(), чтобы преобразовать координату представления в координату сцены с плавающей запятой, или mapFromScene(), чтобы преобразовать координаты сцены с плавающей запятой в координаты представления.

См. также matrix(), setTransform(), rotate(), scale(), shear() и translate().

void QGraphicsView::setOptimizationFlag(OptimizationFlag flag, bool enabled = true)

Включает flag, если enabled равно true; в противном случае отключает flag.

См. также optimizationFlags.

void QGraphicsView::setRenderHint(QPainter::RenderHint hint, bool enabled = true)

Если enabled равно true, то параметр рендеринга hint включен; в противном случае он отключен.

См. также renderHints.

void QGraphicsView::setScene(QGraphicsScene *scene)

Устанавливает текущую сцену на scene. Если scene уже отображается, эта функция ничего не делает.

Когда сцена устанавливается на представлении, сигнал QGraphicsScene::changed() автоматически подключается к слоту updateScene() этого представления, и полосы прокрутки представления корректируются для соответствия размеру сцены.

Представление не принимает на себя владение scene.

См. также scene().

void QGraphicsView::setTransform(const QTransform &matrix, bool combine = false)

Устанавливает текущую матрицу преобразования представления в matrix.

Если combine имеет значение true, то matrix комбинируется с текущей матрицей; в противном случае, matrix заменяет текущую матрицу. По умолчанию combine имеет значение false.

Матрица преобразования преобразует сцену в координаты представления. Используя стандартную матрицу преобразования (тождественную матрицу), один пиксель в представлении соответствует одной единице в сцене (например, прямоугольный элемент 10x10 отображается с помощью 10x10 пикселей в представлении). Если применена матрица масштабирования 2x2, сцена будет отображаться в соотношении 1:2 (например, прямоугольный элемент 10x10 отображается с помощью 20x20 пикселей в представлении).

Пример:

QGraphicsScene scene;
scene.addText("GraphicsView rotated clockwise");

QGraphicsView view(&scene);
view.rotate(90); // the text is rendered with a 90 degree clockwise rotation
view.show();

Для упрощения взаимодействия с элементами, использующими преобразованное представление, QGraphicsView предоставляет функции mapTo... и mapFrom..., которые могут осуществлять преобразование между координатами сцены и представления. Например, можно вызвать mapToScene() для преобразования координаты представления в координату сцены с плавающей запятой или mapFromScene() для преобразования из координат сцены с плавающей запятой в координаты представления.

См. также transform(), rotate(), scale(), shear() и translate().

[virtual protected slot] void QGraphicsView::setupViewport(QWidget *widget)

Переопределено из QAbstractScrollArea::setupViewport().

Этот слот вызывается QAbstractScrollArea после вызова setViewport(). Переопределите эту функцию в подклассе QGraphicsView для инициализации нового представления widget перед его использованием.

См. также setViewport().

void QGraphicsView::shear(qreal sh, qreal sv)

Деформирует текущее преобразование представления на (sh, sv).

См. также setTransform(), transform(), rotate(), scale() и translate().

[virtual protected] void QGraphicsView::showEvent(QShowEvent *event)

Переопределено из QWidget::showEvent().

[virtual] QSize QGraphicsView::sizeHint() const

Переопределено из QWidget::sizeHint().

QTransform QGraphicsView::transform() const

Возвращает текущую матрицу преобразования для представления. Если текущее преобразование не установлено, возвращается единичная матрица.

См. также setTransform(), rotate(), scale(), shear() и translate().

void QGraphicsView::translate(qreal dx, qreal dy)

Перемещает текущее преобразование представления на (dx, dy).

См. также setTransform(), transform(), rotate() и shear().

[slot] void QGraphicsView::updateScene(const QList<QRectF> &rects)

Планирует обновление прямоугольников сцены rects.

См. также QGraphicsScene::changed().

[slot] void QGraphicsView::updateSceneRect(const QRectF &rect)

Уведомляет QGraphicsView, что прямоугольник сцены сцены изменился. rect — новый прямоугольник сцены. Если в представлении уже явно задан прямоугольник сцены, эта функция ничего не делает.

См. также sceneRect и QGraphicsScene::sceneRectChanged().

[virtual protected] bool QGraphicsView::viewportEvent(QEvent *event)

Переопределено из QAbstractScrollArea::viewportEvent().

QTransform QGraphicsView::viewportTransform() const

Возвращает матрицу, которая отображает координаты сцены в координаты представления.

См. также mapToScene() и mapFromScene().

[virtual protected] void QGraphicsView::wheelEvent(QWheelEvent *event)

Переопределено из QWidget::wheelEvent().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qgraphicsview.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API