Spec-Zone.ru › Qt 5.15

Класс QGraphicsView

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

Заголовок: #include <QGraphicsView>
qmake: QT += widgets
С момента: Qt 4.2
Наследует: QAbstractScrollArea

Этот класс был представлен в Qt 4.2.

  • Список всех членов, включая наследуемые
  • Устаревшие члены

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

флаги 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

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

QGraphicsView(QGraphicsScene *scene, QWidget *parent = nullptr)
QGraphicsView(QWidget *parent = nullptr)
virtual ~QGraphicsView()
Qt::Alignment alignment() const
QBrush backgroundBrush() const
QGraphicsView::CacheMode cacheMode() const
void centerOn(const QPointF &pos)
void centerOn(qreal x, qreal y)
void centerOn(const QGraphicsItem *item)
QGraphicsView::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
QGraphicsView::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 resetTransform()
QGraphicsView::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 setBackgroundBrush(const QBrush &brush)
void установитьРежимКеширования(QGraphicsView::CacheMode mode)
void установитьРежимПеретаскивания(QGraphicsView::DragMode mode)
void установитьКистьПереднегоПлана(const QBrush &brush)
void установитьВзаимодействие(bool allowed)
void установитьФлагОптимизации(QGraphicsView::OptimizationFlag flag, bool enabled = true)
void установитьФлагиОптимизации(QGraphicsView::OptimizationFlags flags)
void установитьПризнакОтрисовки(QPainter::RenderHint hint, bool enabled = true)
void установитьПризнакиОтрисовки(QPainter::RenderHints hints)
void установитьЯкорьИзмененияРазмеры(QGraphicsView::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 установитьЯкорьПреобразования(QGraphicsView::ViewportAnchor anchor)
void установитьРежимОбновленияОбластиПредставления(QGraphicsView::ViewportUpdateMode mode)
void сместить(qreal sh, qreal sv)
QTransform преобразование() const
QGraphicsView::ViewportAnchor якорьПреобразования() const
void переместить(qreal dx, qreal dy)
QTransform преобразованиеОбластиПредставления() const
QGraphicsView::ViewportUpdateMode режимОбновленияОбластиПредставления() const

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

virtual QVariant запросМетодаВвода(Qt::InputMethodQuery query) const override
virtual QSize размерПодсказки() const override

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

void обновитьСцену(const QRectF &rect = QRectF(), QGraphicsScene::SceneLayers layers = QGraphicsScene::AllLayers)
void обновитьСцену(const QList<QRectF> &rects)
void обновитьПрямоугольникСцены(const QRectF &rect)

Сигналы

void изменилсяПрямоугольникРезинки(QRect rubberBandRect, QPointF fromScenePoint, QPointF toScenePoint)

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

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

Переопределенные защищенные функции

виртуальный void contextMenuEvent(QContextMenuEvent *event) override
виртуальный void dragEnterEvent(QDragEnterEvent *event) override
виртуальный void dragLeaveEvent(QDragLeaveEvent *event) override
виртуальный void dragMoveEvent(QDragMoveEvent *event) override
виртуальный void dropEvent(QDropEvent *event) override
виртуальный bool event(QEvent *event) override
виртуальный void focusInEvent(QFocusEvent *event) override
виртуальный bool focusNextPrevChild(bool next) override
виртуальный void focusOutEvent(QFocusEvent *event) override
виртуальный void inputMethodEvent(QInputMethodEvent *event) override
виртуальный void keyPressEvent(QKeyEvent *event) override
виртуальный void keyReleaseEvent(QKeyEvent *event) override
виртуальный void mouseDoubleClickEvent(QMouseEvent *event) override
виртуальный void mouseMoveEvent(QMouseEvent *event) override
виртуальный void mousePressEvent(QMouseEvent *event) override
виртуальный void mouseReleaseEvent(QMouseEvent *event) override
виртуальный void paintEvent(QPaintEvent *event) override
виртуальный void resizeEvent(QResizeEvent *event) override
виртуальный void scrollContentsBy(int dx, int dy) override
виртуальный void showEvent(QShowEvent *event) override
виртуальный bool viewportEvent(QEvent *event) override
виртуальный void wheelEvent(QWheelEvent *event) override

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

виртуальный void setupViewport(QWidget *widget) override

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

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 QOpenGLWidget). QGraphicsView получает владение виджетом области просмотра.

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

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

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

Примечание: Использование области просмотра OpenGL ограничивает возможность использования QGraphicsProxyWidget. Не все сочетания виджетов и стилей могут быть поддерживаемы при таком параметре. Вам следует тщательно протестировать свой пользовательский интерфейс и внести необходимые коррективы.

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

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

перечисление QGraphicsView::CacheModeFlagфлаги QGraphicsView::CacheMode

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

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

Тип CacheMode — это псевдоним для QFlags<CacheModeFlag>. Он хранит логическое ИЛИ сочетание значений CacheModeFlag.

См. также cacheMode.

перечисление QGraphicsView::DragMode

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

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

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

перечисление QGraphicsView::OptimizationFlagфлаги 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.

перечисление QGraphicsView::ViewportAnchor

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

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

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

перечисление QGraphicsView::ViewportUpdateMode

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

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

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

См. также viewportUpdateMode.

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

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);

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

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

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

QGraphicsView::CacheMode cacheMode() const
void setCacheMode(QGraphicsView::CacheMode mode)

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

dragMode : DragMode

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

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

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

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

QGraphicsView::DragMode dragMode() const
void setDragMode(QGraphicsView::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.

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

QGraphicsView::OptimizationFlags optimizationFlags() const
void setOptimizationFlags(QGraphicsView::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 использует выравнивание представления для позиционирования сцены в представлении.

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

QGraphicsView::ViewportAnchor resizeAnchor() const
void setResizeAnchor(QGraphicsView::ViewportAnchor anchor)

См. также выравнивание и 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 использует выравнивание представления для позиционирования сцены в представлении.

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

QGraphicsView::ViewportAnchor transformationAnchor() const
void setTransformationAnchor(QGraphicsView::ViewportAnchor anchor)

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

viewportUpdateMode : ViewportUpdateMode

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

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

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

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

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

QGraphicsView::ViewportUpdateMode viewportUpdateMode() const
void setViewportUpdateMode(QGraphicsView::ViewportUpdateMode mode)

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

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

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

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

QGraphicsView::QGraphicsView(QWidget *parent = nullptr)

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

[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().

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

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

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

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

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

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

Переопределяет: QAbstractScrollArea::setupViewport(QWidget *viewport).

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

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

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

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

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

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

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

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

[virtual] 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().

[override virtual protected] void QGraphicsView::contextMenuEvent(QContextMenuEvent *event)

Переопределяет: QAbstractScrollArea::contextMenuEvent(QContextMenuEvent *e).

[override virtual protected] void QGraphicsView::dragEnterEvent(QDragEnterEvent *event)

Переопределяет: QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event).

[override virtual protected] void QGraphicsView::dragLeaveEvent(QDragLeaveEvent *event)

Переопределяет: QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event).

[override virtual protected] void QGraphicsView::dragMoveEvent(QDragMoveEvent *event)

Переопределяет: QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event).

[virtual protected] void QGraphicsView::drawBackground(QPainter *painter, const QRectF &rect)

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

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

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

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

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

[virtual protected] void QGraphicsView::drawForeground(QPainter *painter, const QRectF &rect)

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

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

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

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

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

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

Переопределяет: QAbstractScrollArea::dropEvent(QDropEvent *event).

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().

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

Переопределяет: QAbstractScrollArea::event(QEvent *event).

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

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

Функция сохраняет поворот, сдвиг или наклон представления. Представление масштабируется в соответствии с aspectRatioMode. Если прямоугольник не помещается плотно, он центрируется в представлении.

Часто 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().

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

Переопределяет: QWidget::focusInEvent(QFocusEvent *event).

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

Переопределяет: QWidget::focusNextPrevChild(bool next).

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

Переопределяет: QWidget::focusOutEvent(QFocusEvent *event).

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

Переопределяет: QWidget::inputMethodEvent(QInputMethodEvent *event).

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

Реализует: QWidget::inputMethodQuery(Qt::InputMethodQuery query) const.

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() и Сортировка.

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

Реализует: QAbstractScrollArea::keyPressEvent(QKeyEvent *e).

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

Реализует: QWidget::keyReleaseEvent(QKeyEvent *event).

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)).

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

Переопределяет: QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e).

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

Переопределяет: QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e).

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

Переопределяет: QAbstractScrollArea::mousePressEvent(QMouseEvent *e).

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

Переопределяет: QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e).

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

Переопределяет: QAbstractScrollArea::paintEvent(QPaintEvent *event).

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::resetTransform()

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

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

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

Переопределяет: QAbstractScrollArea::resizeEvent(QResizeEvent *event).

void QGraphicsView::rotate(qreal angle)

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

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

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

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

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

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

Переопределяет: QAbstractScrollArea::scrollContentsBy(int dx, int dy).

void QGraphicsView::setOptimizationFlag(QGraphicsView::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().

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

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

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

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

Переопределяет: QWidget::showEvent(QShowEvent *event).

[override virtual] QSize QGraphicsView::sizeHint() const

Переопределяет: QAbstractScrollArea::sizeHint() const.

QTransform QGraphicsView::transform() const

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

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

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

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

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

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

Переопределяет: QAbstractScrollArea::viewportEvent(QEvent *event).

QTransform QGraphicsView::viewportTransform() const

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

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

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

Переопределяет: QAbstractScrollArea::wheelEvent(QWheelEvent *e).

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

Spec-Zone.ru

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