Spec-Zone.ru › Qt 5.14

Класс 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 = ...)
void fitInView(const QGraphicsItem *item, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)
QBrush foregroundBrush() const
bool isInteractive() const
bool isTransformed() const
QGraphicsItem * itemAt(const QPoint &pos) const
QGraphicsItem * itemAt(int x, int y) const
QList<QGraphicsItem *> items() const
QList<QGraphicsItem *> items(const QPoint &pos) const
QList<QGraphicsItem *> items(int x, int y) const
QList<QGraphicsItem *> items(const QRect &rect, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
QList<QGraphicsItem *> items(int x, int y, int w, int h, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
QList<QGraphicsItem *> items(const QPolygon &polygon, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
QList<QGraphicsItem *> items(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
QPoint mapFromScene(const QPointF &point) const
QPolygon mapFromScene(const QRectF &rect) const
QPolygon mapFromScene(const QPolygonF &polygon) const
QPainterPath mapFromScene(const QPainterPath &path) const
QPoint mapFromScene(qreal x, qreal y) const
QPolygon mapFromScene(qreal x, qreal y, qreal w, qreal h) const
QPointF mapToScene(const QPoint &point) const
QPolygonF mapToScene(const QRect &rect) const
QPolygonF mapToScene(const QPolygon &polygon) const
QPainterPath mapToScene(const QPainterPath &path) const
QPointF mapToScene(int x, int y) const
QPolygonF mapToScene(int x, int y, int w, int h) const
QMatrix matrix() const
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 resetMatrix()
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 setCacheMode(QGraphicsView::CacheMode mode)
void setDragMode(QGraphicsView::DragMode mode)
void setForegroundBrush(const QBrush &brush)
void setInteractive(bool allowed)
void setMatrix(const QMatrix &matrix, bool combine = false)
void setOptimizationFlag(QGraphicsView::OptimizationFlag flag, bool enabled = true)
void setOptimizationFlags(QGraphicsView::OptimizationFlags flags)
void setRenderHint(QPainter::RenderHint hint, bool enabled = true)
void setRenderHints(QPainter::RenderHints hints)
void setResizeAnchor(QGraphicsView::ViewportAnchor anchor)
void setRubberBandSelectionMode(Qt::ItemSelectionMode mode)
void setScene(QGraphicsScene *scene)
void setSceneRect(const QRectF &rect)
void setSceneRect(qreal x, qreal y, qreal w, qreal h)
void setTransform(const QTransform &matrix, bool combine = false)
void setTransformationAnchor(QGraphicsView::ViewportAnchor anchor)
void setViewportUpdateMode(QGraphicsView::ViewportUpdateMode mode)
void shear(qreal sh, qreal sv)
QTransform transform() const
QGraphicsView::ViewportAnchor transformationAnchor() const
void translate(qreal dx, qreal dy)
QTransform viewportTransform() const
QGraphicsView::ViewportUpdateMode viewportUpdateMode() const

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

virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const override
virtual QSize sizeHint() const override

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

void invalidateScene(const QRectF &rect = QRectF(), QGraphicsScene::SceneLayers layers = QGraphicsScene::AllLayers)
void updateScene(const QList<QRectF> &rects)
void updateSceneRect(const QRectF &rect)

Сигналы

void rubberBandChanged(QRect rubberBandRect, QPointF fromScenePoint, QPointF toScenePoint)

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

virtual void drawBackground(QPainter *painter, const QRectF &rect)
virtual void drawForeground(QPainter *painter, const QRectF &rect)

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

virtual void contextMenuEvent(QContextMenuEvent *event) override
virtual void dragEnterEvent(QDragEnterEvent *event) override
virtual void dragLeaveEvent(QDragLeaveEvent *event) override
virtual void dragMoveEvent(QDragMoveEvent *event) override
virtual void dropEvent(QDropEvent *event) override
virtual bool event(QEvent *event) override
virtual void focusInEvent(QFocusEvent *event) override
virtual bool focusNextPrevChild(bool next) override
virtual void focusOutEvent(QFocusEvent *event) override
virtual void inputMethodEvent(QInputMethodEvent *event) override
virtual void keyPressEvent(QKeyEvent *event) override
virtual void keyReleaseEvent(QKeyEvent *event) override
virtual void mouseDoubleClickEvent(QMouseEvent *event) override
virtual void mouseMoveEvent(QMouseEvent *event) override
virtual void mousePressEvent(QMouseEvent *event) override
virtual void mouseReleaseEvent(QMouseEvent *event) override
virtual void paintEvent(QPaintEvent *event) override
virtual void resizeEvent(QResizeEvent *event) override
virtual void scrollContentsBy(int dx, int dy) override
virtual void showEvent(QShowEvent *event) override
virtual bool viewportEvent(QEvent *event) override
virtual void wheelEvent(QWheelEvent *event) override

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

virtual 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 QGLWidget). QGraphicsView принимает на себя ответственность за область просмотра.

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

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

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

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

enum QGraphicsView::OptimizationFlagflags QGraphicsView::OptimizationFlags

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

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

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

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

enum QGraphicsView::ViewportAnchor

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

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

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

enum QGraphicsView::ViewportUpdateMode

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

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

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

См. также viewportUpdateMode.

END_OF_DOCUMENT_MARKER

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

alignment : Qt::Alignment

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

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

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

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

backgroundBrush : QBrush

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

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

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

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

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

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

cacheMode : CacheMode

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

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

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

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

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

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

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

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

Эта вспомогательная функция эквивалентна вызову 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)).

QMatrix QGraphicsView::matrix() const

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

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

[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::resetMatrix()

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

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

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::setMatrix(const QMatrix &matrix, bool combine = false)

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

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

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

Пример:

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

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

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

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

void QGraphicsView::setOptimizationFlag(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.14/qgraphicsview.html

Spec-Zone.ru

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