Spec-Zone.ru › Qt 5.11

Класс QGraphicsView

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

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

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

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

Свойства

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

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

QGraphicsView(QWidget *parent = nullptr)
QGraphicsView(QGraphicsScene *scene, 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
  • 20 публичных функций унаследованных от QAbstractScrollArea
  • 14 публичных функций унаследованных от QFrame
  • 214 публичных функций унаследованных от QWidget
  • 34 публичных функций унаследованных от QObject
  • 14 публичных функций унаследованных от QPaintDevice

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

void invalidateScene(const QRectF &rect, QGraphicsScene::SceneLayers layers)
void updateScene(const QList<QRectF> &rects)
void updateSceneRect(const QRectF &rect)
  • 19 публичных слотов унаследованных от QWidget
  • 1 публичный слот унаследованный от QObject

Сигналы

void rubberBandChanged(QRect rubberBandRect, QPointF fromScenePoint, QPointF toScenePoint)
  • 3 сигнала унаследованных от QWidget
  • 2 сигнала унаследованных от QObject

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

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
  • 20 защищенных функций, унаследованных от QAbstractScrollArea
  • 4 защищенных функций, унаследованных от QFrame
  • 35 защищенных функций, унаследованных от QWidget
  • 9 защищенных функций, унаследованных от QObject
  • 1 защищенная функция, унаследованная от QPaintDevice

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

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

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

  • 1 общедоступная переменная, унаследованная от QObject
  • 5 статические общедоступные члены, унаследованные от QWidget
  • 10 статических общедоступных членов, унаследованных от QObject
  • 2 защищённых переменных, унаследованных от QObject
  • 1 защищённый тип, унаследованный от QPaintDevice

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

enum QGraphicsView::CacheModeFlagflags QGraphicsView::CacheMode

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

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

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

См. также cacheMode.

enum QGraphicsView::DragMode

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

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

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

enum QGraphicsView::OptimizationFlagflags QGraphicsView::OptimizationFlags

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

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

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

Тип OptimizationFlags — это псевдоним для QFlags<OptimizationFlag>. Он хранит результат побитового ИЛИ значений OptimizationFlag.

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.

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

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

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

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

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

rubberBandSelectionMode : Qt::ItemSelectionMode

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

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

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

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

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

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

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

sceneRect : QRectF

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

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

Если свойство не задано или ему присвоено значение null 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(QWidget *parent = nullptr)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

bool QGraphicsView::isTransformed() const

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

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

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

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

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

Пример:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

QMatrix QGraphicsView::matrix() const

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

void QGraphicsView::resetCachedContent()

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

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

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

void QGraphicsView::resetMatrix()

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

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

void QGraphicsView::resetTransform()

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

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

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

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

void QGraphicsView::rotate(qreal angle)

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

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

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

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

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

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

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

QRect QGraphicsView::rubberBandRect() const

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

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

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

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

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

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

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

QGraphicsScene *QGraphicsView::scene() const

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

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

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

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

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

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

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

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

Пример:

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

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

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

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

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

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

Переопределяет метод QAbstractScrollArea::setupViewport().

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

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

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

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

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

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

Переопределяет метод QWidget::showEvent().

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

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

QTransform QGraphicsView::transform() const

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

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

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

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

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

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

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

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

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

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

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

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

Переопределяет метод QAbstractScrollArea::viewportEvent().

QTransform QGraphicsView::viewportTransform() const

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

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

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

Переопределяет метод QAbstractScrollArea::wheelEvent().

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

Spec-Zone.ru

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