Spec-Zone.ru › Qt

Класс QGraphicsView

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

Заголовок: #include <QGraphicsView>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследуется от: QAbstractScrollArea
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Общедоступные типы

Флаги CacheMode
Перечисление CacheModeFlag { CacheNone, CacheBackground }
Перечисление DragMode { NoDrag, ScrollHandDrag, RubberBandDrag }
Перечисление OptimizationFlag { 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 выделит один pixmap с полным размером представления.

Тип CacheMode — это typedef для 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::DontSavePainterState 0x1 При отрисовке QGraphicsView защищает состояние художника (см. QPainter::save()) при отрисовке фона или переднего плана, а также при отрисовке каждого элемента. Это позволяет вам оставить художника в изменённом состоянии (т.е. вы можете вызвать QPainter::setPen() или QPainter::setBrush() без восстановления состояния после отрисовки). Однако, если элементы последовательно восстанавливают состояние, вы должны включить этот флаг, чтобы предотвратить выполнение QGraphicsView аналогичных действий.
QGraphicsView::DontAdjustForAntialiasing 0x2 Отключает автоматическую настройку антиалиасинга QGraphicsView для раскрытых областей. Элементы, которые рисуют линии с антиалиасингом на границах их QGraphicsItem::boundingRect(), могут заканчивать отрисовку частей линии за пределами. Чтобы предотвратить артефакты отрисовки, QGraphicsView расширяет все раскрытые области на 2 пикселя во всех направлениях. Если вы включите этот флаг, QGraphicsView больше не будет выполнять эти корректировки, минимизируя области, требующие перерисовки, что повышает производительность. Частым побочным эффектом является то, что элементы, которые рисуют с антиалиасингом, могут оставлять следы отрисовки на сцене при перемещении.
QGraphicsView::IndirectPainting 0x4 Начиная с Qt 4.6, восстанавливается старый алгоритм рисования, вызывающий QGraphicsView::drawItems() и QGraphicsScene::drawItems(). Используется только для совместимости со старым кодом.

Тип OptimizationFlags — это typedef для 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 и подходит для сцен, которые либо требуют фиксированной частоты кадров, либо чья область просмотра обновляется внешним образом.

См. также 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 использует обрезку, дополнительные корректировки прямоугольника bounding, и некоторые другие средства для повышения качества рендеринга и производительности в случае графической сцены. Однако, в зависимости от целевой платформы, сцены и используемой области просмотра, некоторые из этих операций могут снизить производительность.

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

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

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

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)

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

rubberBandSelectionMode : Qt::ItemSelectionMode

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

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

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

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

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)

См. также выравнивание и resizeAnchor.

viewportUpdateMode : ViewportUpdateMode

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

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

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

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

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, since 5.1] void QGraphicsView::rubberBandChanged(QRect rubberBandRect, QPointF fromScenePoint, QPointF toScenePoint)

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

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

Эта функция была введена в 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. 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().

[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 true, если представление преобразовано (т.е., задано не тождественное преобразование или скорректированы полосы прокрутки), иначе false.

См. также 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).

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

[since 5.1] 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-6.2/qgraphicsview.html

Spec-Zone.ru

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