Класс 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 } |
Свойства
|
|
Открытые функции
| QGraphicsView(QGraphicsScene *scene, QWidget *parent = nullptr) | |
| QGraphicsView(QWidget *parent = nullptr) | |
| virtual | ~QGraphicsView() |
| Qt::Alignment | alignment() const |
| QBrush | backgroundBrush() const |
| QGraphicsView::CacheMode | cacheMode() const |
| void | centerOn(const QPointF &pos) |
| void | centerOn(qreal x, qreal y) |
| void | centerOn(const QGraphicsItem *item) |
| QGraphicsView::DragMode | dragMode() const |
| void | ensureVisible(const QRectF &rect, int xmargin = 50, int ymargin = 50) |
| void | ensureVisible(qreal x, qreal y, qreal w, qreal h, int xmargin = 50, int ymargin = 50) |
| void | ensureVisible(const QGraphicsItem *item, int xmargin = 50, int ymargin = 50) |
| void | fitInView(const QRectF &rect, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio) |
| void | fitInView(qreal x, qreal y, qreal w, qreal h, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio) |
| void | fitInView(const QGraphicsItem *item, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio) |
| QBrush | foregroundBrush() const |
| bool | isInteractive() const |
| bool | isTransformed() const |
| QGraphicsItem * | itemAt(const QPoint &pos) const |
| QGraphicsItem * | itemAt(int x, int y) const |
| QList<QGraphicsItem *> | items() const |
| QList<QGraphicsItem *> | items(const QPoint &pos) const |
| QList<QGraphicsItem *> | items(int x, int y) const |
| QList<QGraphicsItem *> | items(const QRect &rect, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const |
| QList<QGraphicsItem *> | items(int x, int y, int w, int h, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const |
| QList<QGraphicsItem *> | items(const QPolygon &polygon, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const |
| QList<QGraphicsItem *> | items(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const |
| QPoint | mapFromScene(const QPointF &point) const |
| QPolygon | mapFromScene(const QRectF &rect) const |
| QPolygon | mapFromScene(const QPolygonF &polygon) const |
| QPainterPath | mapFromScene(const QPainterPath &path) const |
| QPoint | mapFromScene(qreal x, qreal y) const |
| QPolygon | mapFromScene(qreal x, qreal y, qreal w, qreal h) const |
| QPointF | mapToScene(const QPoint &point) const |
| QPolygonF | mapToScene(const QRect &rect) const |
| QPolygonF | mapToScene(const QPolygon &polygon) const |
| QPainterPath | mapToScene(const QPainterPath &path) const |
| QPointF | mapToScene(int x, int y) const |
| QPolygonF | mapToScene(int x, int y, int w, int h) const |
| QGraphicsView::OptimizationFlags | optimizationFlags() const |
| void | render(QPainter *painter, const QRectF &target = QRectF(), const QRect &source = QRect(), Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio) |
| QPainter::RenderHints | renderHints() const |
| void | resetCachedContent() |
| void | resetTransform() |
| QGraphicsView::ViewportAnchor | resizeAnchor() const |
| void | rotate(qreal angle) |
| QRect | rubberBandRect() const |
| Qt::ItemSelectionMode | rubberBandSelectionMode() const |
| void | scale(qreal sx, qreal sy) |
| QGraphicsScene * | scene() const |
| QRectF | sceneRect() const |
| void | setAlignment(Qt::Alignment alignment) |
| void | setBackgroundBrush(const QBrush &brush) |
| void | установитьРежимКеширования(QGraphicsView::CacheMode mode) |
| void | установитьРежимПеретаскивания(QGraphicsView::DragMode mode) |
| void | установитьКистьПереднегоПлана(const QBrush &brush) |
| void | установитьВзаимодействие(bool allowed) |
| void | установитьФлагОптимизации(QGraphicsView::OptimizationFlag flag, bool enabled = true) |
| void | установитьФлагиОптимизации(QGraphicsView::OptimizationFlags flags) |
| void | установитьПризнакОтрисовки(QPainter::RenderHint hint, bool enabled = true) |
| void | установитьПризнакиОтрисовки(QPainter::RenderHints hints) |
| void | установитьЯкорьИзмененияРазмеры(QGraphicsView::ViewportAnchor anchor) |
| void | установитьРежимВыделенияРезинкой(Qt::ItemSelectionMode mode) |
| void | установитьСцену(QGraphicsScene *scene) |
| void | установитьПрямоугольникСцены(const QRectF &rect) |
| void | установитьПрямоугольникСцены(qreal x, qreal y, qreal w, qreal h) |
| void | установитьПреобразование(const QTransform &matrix, bool combine = false) |
| void | установитьЯкорьПреобразования(QGraphicsView::ViewportAnchor anchor) |
| void | установитьРежимОбновленияОбластиПредставления(QGraphicsView::ViewportUpdateMode mode) |
| void | сместить(qreal sh, qreal sv) |
| QTransform | преобразование() const |
| QGraphicsView::ViewportAnchor | якорьПреобразования() const |
| void | переместить(qreal dx, qreal dy) |
| QTransform | преобразованиеОбластиПредставления() const |
| QGraphicsView::ViewportUpdateMode | режимОбновленияОбластиПредставления() const |
Реализованные публичные функции
| virtual QVariant | запросМетодаВвода(Qt::InputMethodQuery query) const override |
| virtual QSize | размерПодсказки() const override |
Публичные слоты
| void | обновитьСцену(const QRectF &rect = QRectF(), QGraphicsScene::SceneLayers layers = QGraphicsScene::AllLayers) |
| void | обновитьСцену(const QList<QRectF> &rects) |
| void | обновитьПрямоугольникСцены(const QRectF &rect) |
Сигналы
| void | изменилсяПрямоугольникРезинки(QRect rubberBandRect, QPointF fromScenePoint, QPointF toScenePoint) |
Защищенные функции
| virtual void | нарисоватьФон(QPainter *painter, const QRectF &rect) |
| virtual void | нарисоватьПереднийПлан(QPainter *painter, const QRectF &rect) |
Переопределенные защищенные функции
| виртуальный void | contextMenuEvent(QContextMenuEvent *event) override |
| виртуальный void | dragEnterEvent(QDragEnterEvent *event) override |
| виртуальный void | dragLeaveEvent(QDragLeaveEvent *event) override |
| виртуальный void | dragMoveEvent(QDragMoveEvent *event) override |
| виртуальный void | dropEvent(QDropEvent *event) override |
| виртуальный bool | event(QEvent *event) override |
| виртуальный void | focusInEvent(QFocusEvent *event) override |
| виртуальный bool | focusNextPrevChild(bool next) override |
| виртуальный void | focusOutEvent(QFocusEvent *event) override |
| виртуальный void | inputMethodEvent(QInputMethodEvent *event) override |
| виртуальный void | keyPressEvent(QKeyEvent *event) override |
| виртуальный void | keyReleaseEvent(QKeyEvent *event) override |
| виртуальный void | mouseDoubleClickEvent(QMouseEvent *event) override |
| виртуальный void | mouseMoveEvent(QMouseEvent *event) override |
| виртуальный void | mousePressEvent(QMouseEvent *event) override |
| виртуальный void | mouseReleaseEvent(QMouseEvent *event) override |
| виртуальный void | paintEvent(QPaintEvent *event) override |
| виртуальный void | resizeEvent(QResizeEvent *event) override |
| виртуальный void | scrollContentsBy(int dx, int dy) override |
| виртуальный void | showEvent(QShowEvent *event) override |
| виртуальный bool | viewportEvent(QEvent *event) override |
| виртуальный void | wheelEvent(QWheelEvent *event) override |
Защищенные слоты
| виртуальный void | setupViewport(QWidget *widget) override |
Подробное описание
QGraphicsView визуализирует содержимое QGraphicsScene в прокручиваемом представлении. Для создания сцены с геометрическими элементами см. документацию QGraphicsScene. QGraphicsView входит в состав Графической системы отображения.
Для визуализации сцены вы начинаете с создания объекта QGraphicsView, передавая в конструктор QGraphicsView адрес сцены, которую вы хотите визуализировать. В качестве альтернативы вы можете вызвать setScene() для задания сцены позже. После вызова show(), представление по умолчанию прокрутит сцену к центру и отобразит любые элементы, которые видны в этот момент. Например:
QGraphicsScene scene;
scene.addText("Hello, world!");
QGraphicsView view(&scene);
view.show(); Вы можете явно прокрутить до любой позиции на сцене, используя полосы прокрутки или вызвав centerOn(). Передав точку в centerOn(), QGraphicsView прокрутит область просмотра, чтобы убедиться, что точка расположена в центре представления. Предоставлена перегрузка для прокрутки до QGraphicsItem, в этом случае QGraphicsView обеспечит, что центр элемента будет находиться в центре представления. Если вам нужно только убедиться, что определенная область видна (но не обязательно в центре), вы можете вызвать ensureVisible() вместо этого.
QGraphicsView может использоваться для визуализации всей сцены или только её частей. Визуализируемая область по умолчанию определяется автоматически при первом отображении представления (вызовом QGraphicsScene::itemsBoundingRect()). Чтобы самостоятельно задать прямоугольник визуализируемой области, вы можете вызвать setSceneRect(). Это позволит соответствующим образом настроить диапазоны полос прокрутки. Обратите внимание, что, хотя сцена поддерживает практически неограниченный размер, диапазон полос прокрутки никогда не будет превышать диапазон целого числа (INT_MIN, INT_MAX).
QGraphicsView визуализирует сцену, вызывая render(). По умолчанию элементы рисуются в область просмотра с помощью обычного QPainter и с использованием параметров рендеринга по умолчанию. Чтобы изменить параметры рендеринга по умолчанию, которые QGraphicsView передаёт в QPainter при рисовании элементов, вы можете вызвать setRenderHints().
По умолчанию QGraphicsView предоставляет обычный QWidget для виджета области просмотра. Вы можете получить доступ к этому виджету, вызвав viewport(), или заменить его, вызвав setViewport(). Для рендеринга с помощью OpenGL просто вызовите setViewport(new QOpenGLWidget). QGraphicsView получает владение виджетом области просмотра.
QGraphicsView поддерживает аффинные преобразования с использованием QTransform. Вы можете либо передать матрицу в setTransform(), либо вызвать одну из удобных функций rotate(), scale(), translate() или shear(). Два наиболее распространённых преобразования — масштабирование (используется для масштабирования) и вращение. QGraphicsView сохраняет центр представления фиксированным во время преобразования. Из-за выравнивания сцены (setAligment()) перемещение представления не повлияет на визуальное отображение.
Вы можете взаимодействовать с элементами сцены с помощью мыши и клавиатуры. QGraphicsView преобразует события мыши и клавиатуры в события сцены (события, унаследованные от QGraphicsSceneEvent), и передает их визуализируемой сцене. В конечном итоге именно отдельный элемент обрабатывает события и реагирует на них. Например, если вы щелкните по выбираемому элементу, элемент обычно сообщит сцене, что он выбран, и также перерисует себя, чтобы отобразить прямоугольник выделения. Аналогично, если вы щелкните и перетащите мышь, чтобы переместить перемещаемый элемент, это элемент обрабатывает перемещения мыши и перемещает себя. Взаимодействие с элементами включено по умолчанию, и вы можете отключить его, вызвав setInteractive().
Вы также можете предоставить собственное пользовательское взаимодействие со сценой, создав подкласс QGraphicsView и переопределив обработчики событий мыши и клавиатуры. Для упрощения программно-управляемого взаимодействия с элементами в представлении QGraphicsView предоставляет функции отображения mapToScene() и mapFromScene(), а также элементы доступа items() и itemAt(). Эти функции позволяют отображать точки, прямоугольники, многоугольники и пути между координатами представления и координатами сцены, а также находить элементы на сцене с использованием координат представления.
Примечание: Использование области просмотра OpenGL ограничивает возможность использования QGraphicsProxyWidget. Не все сочетания виджетов и стилей могут быть поддерживаемы при таком параметре. Вам следует тщательно протестировать свой пользовательский интерфейс и внести необходимые коррективы.
См. также QGraphicsScene, QGraphicsItem и QGraphicsSceneEvent.
Документация типов членов
перечисление QGraphicsView::CacheModeFlagфлаги QGraphicsView::CacheMode
Это перечисление описывает флаги, которые можно установить для режима кеширования QGraphicsView.
| Постоянная | Значение | Описание |
|---|---|---|
QGraphicsView::CacheNone |
0x0 |
Весь рендеринг выполняется непосредственно в области просмотра. |
QGraphicsView::CacheBackground |
0x1 |
Фон кешируется. Это влияет как на пользовательские фоны, так и на фоны, основанные на свойстве backgroundBrush. При включении этого флага QGraphicsView выделит один пиксель с полным размером области просмотра. |
Тип CacheMode — это псевдоним для QFlags<CacheModeFlag>. Он хранит логическое ИЛИ сочетание значений CacheModeFlag.
См. также cacheMode.
перечисление QGraphicsView::DragMode
Это перечисление описывает действие по умолчанию для просмотра при нажатии и перетаскивании мыши по области просмотра.
| Постоянная | Значение | Описание |
|---|---|---|
QGraphicsView::NoDrag |
0 |
Ничего не происходит; событие мыши игнорируется. |
QGraphicsView::ScrollHandDrag |
1 |
Курсор меняется на указатель руки, а перетаскивание мыши прокручивает полосы прокрутки. Этот режим работает как в режиме interactive, так и в неинтерактивном режиме. |
QGraphicsView::RubberBandDrag |
2 |
Появится резиновый прямоугольник. Перетаскивание мыши задаст геометрию резинового прямоугольника, и все элементы, покрытые резиновым прямоугольником, будут выбраны. Этот режим отключен для неинтерактивных представлений. |
См. также dragMode и QGraphicsScene::setSelectionArea().
перечисление QGraphicsView::OptimizationFlagфлаги QGraphicsView::OptimizationFlags
Это перечисление описывает флаги, которые можно включить для повышения производительности рендеринга в QGraphicsView. По умолчанию ни один из этих флагов не установлен. Обратите внимание, что установка флага обычно влечёт побочный эффект, и этот эффект может варьироваться в зависимости от устройств рисования и платформ.
| Постоянная | Значение | Описание |
|---|---|---|
QGraphicsView::DontClipPainter |
0x1 |
Это значение устарело и не имеет эффекта. |
QGraphicsView::DontSavePainterState |
0x2 |
При рендеринге QGraphicsView защищает состояние рисования (см. QPainter::save()) при рендеринге фона или переднего плана, а также при рендеринге каждого элемента. Это позволяет вам оставить рисование в изменённом состоянии (то есть вы можете вызвать QPainter::setPen() или QPainter::setBrush() без восстановления состояния после рисования). Однако, если элементы последовательно восстанавливают состояние, вы должны включить этот флаг, чтобы предотвратить выполнение QGraphicsView аналогичных действий. |
QGraphicsView::DontAdjustForAntialiasing |
0x4 |
Отключает автоматическую настройку антиалиасинга QGraphicsView для отображаемых областей. Элементы, которые рендерят антиалиасинговые линии на границах их QGraphicsItem::boundingRect(), могут отображать части линии за пределами области. Для предотвращения артефактов рендеринга QGraphicsView расширяет все отображаемые области на 2 пикселя во всех направлениях. Если вы включите этот флаг, QGraphicsView больше не будет выполнять эти корректировки, сводя к минимуму области, требующие перерисовки, что повышает производительность. Частым побочным эффектом является то, что элементы, которые рисуются с антиалиасингом, могут оставлять следы рисования на сцене при перемещении. |
QGraphicsView::IndirectPainting |
0x8 |
С Qt 4.6, восстанавливается старый алгоритм рисования, который вызывает QGraphicsView::drawItems() и QGraphicsScene::drawItems(). Используется только для совместимости со старым кодом. |
Это перечисление было введено или изменено в Qt 4.3.
Тип OptimizationFlags — это псевдоним для QFlags<OptimizationFlag>. Он хранит логическое ИЛИ сочетание значений OptimizationFlag.
перечисление QGraphicsView::ViewportAnchor
Это перечисление описывает возможные якоря, которые QGraphicsView может использовать при изменении размера просмотра пользователем или при преобразовании просмотра.
| Постоянная | Значение | Описание |
|---|---|---|
QGraphicsView::NoAnchor |
0 |
Без якоря, т.е. просмотр оставляет позицию сцены неизменной. |
QGraphicsView::AnchorViewCenter |
1 |
Точка сцены в центре просмотра используется в качестве якоря. |
QGraphicsView::AnchorUnderMouse |
2 |
Точка под указателем мыши используется в качестве якоря. |
См. также resizeAnchor и transformationAnchor.
перечисление QGraphicsView::ViewportUpdateMode
Это перечисление описывает, как QGraphicsView обновляет свою область просмотра, когда меняется или становится видимой часть содержимого сцены.
| Постоянная | Значение | Описание |
|---|---|---|
QGraphicsView::FullViewportUpdate |
0 |
При изменении или повторном отображении любой видимой части сцены QGraphicsView обновит всю область просмотра. Этот подход наиболее быстрый, когда QGraphicsView тратит больше времени на определение того, что рисовать, чем на само рисование (например, когда много мелких элементов обновляются многократно). Это предпочтительный режим обновления для областей просмотра, которые не поддерживают частичные обновления, такие как QOpenGLWidget, и для областей просмотра, которым нужно отключить оптимизацию прокрутки. |
QGraphicsView::MinimalViewportUpdate |
1 |
QGraphicsView определит минимальную область просмотра, которая требует перерисовки, сводя к минимуму время, затрачиваемое на рисование, избегая перерисовки областей, которые не изменились. Это режим по умолчанию для QGraphicsView. Хотя этот подход обеспечивает лучшую производительность в целом, если на сцене много мелких видимых изменений, QGraphicsView может потратить больше времени на поиск минимального подхода, чем на само рисование. |
QGraphicsView::SmartViewportUpdate |
2 |
QGraphicsView попытается найти оптимальный режим обновления, проанализировав области, которые требуют перерисовки. |
QGraphicsView::BoundingRectViewportUpdate |
4 |
Будет перерисована ограничивающая прямоугольная область всех изменений в области просмотра. Этот режим имеет преимущество в том, что QGraphicsView ищет изменения только в одной области, сводя к минимуму время, затрачиваемое на определение того, что нужно перерисовать. Недостатком является то, что области, которые не изменились, также необходимо перерисовать. |
QGraphicsView::NoViewportUpdate |
3 |
QGraphicsView никогда не будет обновлять свою область просмотра при изменении сцены; ожидается, что пользователь будет контролировать все обновления. Этот режим отключает все (потенциально медленные) проверки видимости элементов в QGraphicsView и подходит для сцен, которые требуют фиксированной частоты кадров или где область просмотра иначе обновляется внешне. |
Это перечисление было введено или изменено в Qt 4.3.
См. также viewportUpdateMode.
Документация свойств
alignment : Qt::Alignment
Это свойство содержит выравнивание сцены в представлении, когда вся сцена видна.
Если вся сцена видна в представлении (т.е., нет видимых полос прокрутки), выравнивание представления определит, где будет отрисовываться сцена в представлении. Например, если выравнивание равно Qt::AlignCenter (по умолчанию), сцена будет центрирована в представлении, а если выравнивание равно (Qt::AlignLeft | Qt::AlignTop), сцена будет отрисована в верхнем левом углу представления.
Функции доступа:
| Qt::Alignment | alignment() const |
| void | setAlignment(Qt::Alignment alignment) |
backgroundBrush : QBrush
Это свойство содержит кисть фона сцены.
Это свойство задает кисть фона сцены в этом представлении. Оно используется для переопределения собственного фона сцены и определяет поведение метода drawBackground(). Для предоставления пользовательской отрисовки фона для этого представления вы можете переопределить метод drawBackground() вместо этого.
По умолчанию это свойство содержит кисть с шаблоном Qt::NoBrush.
Функции доступа:
| QBrush | backgroundBrush() const |
| void | setBackgroundBrush(const QBrush &brush) |
См. также QGraphicsScene::backgroundBrush и foregroundBrush.
cacheMode : CacheMode
Это свойство определяет, какие части представления кешируются
QGraphicsView может кешировать предварительно отрисованные содержимое в QPixmap, которое затем отображается на области просмотра. Цель такого кеширования – ускорить общее время отрисовки для областей, которые медленно отрисовываются. Текстуры, градиенты и заливки с альфа-каналом, например, могут быть заметно медленнее отрисованы, особенно при преобразованном представлении. Флаг CacheBackground включает кеширование фона представления. Например:
QGraphicsView view;
view.setBackgroundBrush(QImage(":/images/backgroundtile.png"));
view.setCacheMode(QGraphicsView::CacheBackground); Кэш инвалидируется каждый раз, когда представление преобразуется. Однако при прокрутке требуется только частичная инвалидация.
По умолчанию ничего не кешируется.
Функции доступа:
| QGraphicsView::CacheMode | cacheMode() const |
| void | setCacheMode(QGraphicsView::CacheMode mode) |
См. также resetCachedContent() и QPixmapCache.
dragMode : DragMode
Это свойство определяет поведение при перетаскивании мыши по сцене, когда нажата левая кнопка мыши.
Это свойство определяет, что должно произойти, когда пользователь щелкает по фону сцены и перетаскивает мышь (например, прокрутка содержимого области просмотра с помощью курсора указателя или выделение нескольких элементов с помощью прямоугольника выделения). Значение по умолчанию NoDrag ничего не делает.
Это поведение затрагивает только щелчки мыши, которые не обрабатываются ни одним элементом. Вы можете определить пользовательское поведение, создав подкласс QGraphicsView и переопределив метод mouseMoveEvent().
Функции доступа:
| QGraphicsView::DragMode | dragMode() const |
| void | setDragMode(QGraphicsView::DragMode mode) |
foregroundBrush : QBrush
Это свойство содержит кисть переднего плана сцены.
Это свойство задает кисть переднего плана сцены в этом представлении. Оно используется для переопределения собственного переднего плана сцены и определяет поведение метода drawForeground(). Для предоставления пользовательской отрисовки переднего плана для этого представления вы можете переопределить метод drawForeground() вместо этого.
По умолчанию это свойство содержит кисть с шаблоном Qt::NoBrush.
Функции доступа:
| QBrush | foregroundBrush() const |
| void | setForegroundBrush(const QBrush &brush) |
См. также QGraphicsScene::foregroundBrush и backgroundBrush.
interactive : bool
Это свойство определяет, разрешена ли интерактивность сцены в представлении.
Если включено, это представление разрешает интерактивность сцены. В противном случае это представление не позволит интерактивность, и любые события мыши или клавиатуры будут игнорироваться (т.е., оно будет действовать как представление только для чтения).
По умолчанию это свойство равно true.
Функции доступа:
| bool | isInteractive() const |
| void | setInteractive(bool allowed) |
optimizationFlags : OptimizationFlags
Флаги, которые можно использовать для настройки производительности QGraphicsView.
QGraphicsView использует обрезку, дополнительные корректировки ограничивающего прямоугольника и другие вспомогательные средства для улучшения качества и производительности отрисовки для обычных случаев графической сцены. Однако в зависимости от целевой платформы, сцены и используемой области просмотра некоторые из этих операций могут ухудшить производительность.
Эффект варьируется от флага к флагу; см. документацию по OptimizationFlags для получения подробной информации.
По умолчанию никакие флаги оптимизации не включены.
Это свойство было введено в Qt 4.3.
Функции доступа:
| QGraphicsView::OptimizationFlags | optimizationFlags() const |
| void | setOptimizationFlags(QGraphicsView::OptimizationFlags flags) |
См. также setOptimizationFlag().
renderHints : QPainter::RenderHints
Это свойство содержит значения по умолчанию для рендеринга в представлении
Эти значения используются для инициализации QPainter перед отрисовкой каждого видимого элемента. QPainter использует значения рендеринга для включения таких функций отрисовки, как сглаживание и плавное преобразование пикселей.
QPainter::TextAntialiasing включено по умолчанию.
Пример:
QGraphicsScene scene; scene.addRect(QRectF(-10, -10, 20, 20)); QGraphicsView view(&scene); view.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); view.show();
Функции доступа:
| QPainter::RenderHints | renderHints() const |
| void | setRenderHints(QPainter::RenderHints hints) |
resizeAnchor : ViewportAnchor
Как представление должно позиционировать сцену при изменении размера представления.
QGraphicsView использует это свойство для определения, как позиционировать сцену в области просмотра при изменении размера виджета области просмотра. Поведение по умолчанию, NoAnchor, оставляет положение сцены неизменным во время изменения размера; верхний левый угол представления будет закреплен при изменении размера.
Обратите внимание, что эффект этого свойства заметен, когда видна только часть сцены (т.е., когда есть полосы прокрутки). В противном случае, если вся сцена помещается в представление, QGraphicsScene использует выравнивание представления для позиционирования сцены в представлении.
Функции доступа:
| QGraphicsView::ViewportAnchor | resizeAnchor() const |
| void | setResizeAnchor(QGraphicsView::ViewportAnchor anchor) |
См. также выравнивание и transformationAnchor.
rubberBandSelectionMode : Qt::ItemSelectionMode
Это свойство определяет поведение при выделении элементов с помощью прямоугольника выделения.
Это свойство определяет, как выделяются элементы при использовании режима перетаскивания RubberBandDrag.
Значение по умолчанию — Qt::IntersectsItemShape; все элементы, чья форма пересекается с или содержится в эластичной полосе, выбираются.
Это свойство было добавлено в Qt 4.3.
Функции доступа:
| Qt::ItemSelectionMode | rubberBandSelectionMode() const |
| void | setRubberBandSelectionMode(Qt::ItemSelectionMode mode) |
См. также dragMode, items() и rubberBandRect().
sceneRect : QRectF
Это свойство содержит область сцены, визуализируемую этим представлением.
Прямоугольник сцены определяет границы сцены, а в случае представления это означает область сцены, по которой можно перемещаться с помощью полос прокрутки.
Если свойство не задано или если установлен нулевой QRectF, это свойство имеет такое же значение, как QGraphicsScene::sceneRect, и изменяется вместе с QGraphicsScene::sceneRect. В противном случае прямоугольник сцены представления не зависит от сцены.
Обратите внимание, что, хотя сцена поддерживает практически неограниченный размер, диапазон полос прокрутки никогда не превысит диапазон целого числа (INT_MIN, INT_MAX). Когда сцена больше, чем значения полос прокрутки, можно использовать translate(), чтобы перемещаться по сцене.
По умолчанию это свойство содержит прямоугольник в начале координат с нулевой шириной и высотой.
Функции доступа:
| QRectF | sceneRect() const |
| void | setSceneRect(const QRectF &rect) |
| void | setSceneRect(qreal x, qreal y, qreal w, qreal h) |
См. также QGraphicsScene::sceneRect.
transformationAnchor : ViewportAnchor
как представление должно позиционировать сцену во время преобразований.
QGraphicsView использует это свойство для определения, как позиционировать сцену в области просмотра при изменении матрицы преобразования и преобразовании системы координат представления. Поведение по умолчанию, AnchorViewCenter, гарантирует, что точка сцены в центре представления остается неизменной во время преобразований (например, при вращении сцена будет казаться вращающейся вокруг центра представления).
Обратите внимание, что эффект этого свойства заметен, когда видна только часть сцены (т. е. когда есть полосы прокрутки). В противном случае, если вся сцена помещается в представление, QGraphicsScene использует выравнивание представления для позиционирования сцены в представлении.
Функции доступа:
| QGraphicsView::ViewportAnchor | transformationAnchor() const |
| void | setTransformationAnchor(QGraphicsView::ViewportAnchor anchor) |
См. также alignment и resizeAnchor.
viewportUpdateMode : ViewportUpdateMode
как область просмотра должна обновлять свое содержимое.
QGraphicsView использует это свойство для определения, как обновлять области сцены, которые были повторно показаны или изменены. Обычно вам не нужно изменять это свойство, но в некоторых случаях это может улучшить производительность отрисовки. См. документацию ViewportUpdateMode для получения подробной информации.
Значение по умолчанию — MinimalViewportUpdate, где QGraphicsView будет обновлять как можно меньшую область области просмотра при изменении содержимого.
Это свойство было добавлено в Qt 4.3.
Функции доступа:
| QGraphicsView::ViewportUpdateMode | viewportUpdateMode() const |
| void | setViewportUpdateMode(QGraphicsView::ViewportUpdateMode mode) |
См. также ViewportUpdateMode и cacheMode.
Документация по членам-функциям
QGraphicsView::QGraphicsView(QGraphicsScene *scene, QWidget *parent = nullptr)
Конструктор QGraphicsView и установка визуализируемой сцены на scene. parent передаётся в конструктор QWidget.
QGraphicsView::QGraphicsView(QWidget *parent = nullptr)
Конструктор QGraphicsView. parent передаётся в конструктор QWidget.
[slot] void QGraphicsView::invalidateScene(const QRectF &rect = QRectF(), QGraphicsScene::SceneLayers layers = QGraphicsScene::AllLayers)
Делает недействительной и планирует перерисовку layers внутри rect. rect — в координатах сцены. Любое кэшированное содержимое для layers внутри rect безусловно делается недействительным и перерисовывается.
Можно вызвать эту функцию, чтобы уведомить QGraphicsView об изменениях фона или переднего плана сцены. Она часто используется для сцен с фоном на основе тайлов, чтобы уведомить об изменениях, когда QGraphicsView включил кэширование фона.
Обратите внимание, что QGraphicsView в настоящее время поддерживает кэширование фона только (см. QGraphicsView::CacheBackground). Эта функция эквивалентна вызову update() при передаче любого слоя, кроме QGraphicsScene::BackgroundLayer.
См. также QGraphicsScene::invalidate() и update().
[signal] void QGraphicsView::rubberBandChanged(QRect rubberBandRect, QPointF fromScenePoint, QPointF toScenePoint)
Этот сигнал подаётся при изменении прямоугольника эластичной полосы. Прямоугольник области просмотра задаётся параметром rubberBandRect. Начальная и конечная позиции перетаскивания указываются в координатах сцены параметрами fromScenePoint и toScenePoint.
При окончании выделения с помощью эластичной полосы этот сигнал будет выпущен со значениями null.
Эта функция была добавлена в Qt 5.1.
См. также rubberBandRect().
[override virtual protected slot] void QGraphicsView::setupViewport(QWidget *widget)
Переопределяет: QAbstractScrollArea::setupViewport(QWidget *viewport).
Этот слот вызывается QAbstractScrollArea после вызова setViewport(). Переопределите эту функцию в подклассе QGraphicsView, чтобы инициализировать новый виджет области просмотра widget перед его использованием.
См. также setViewport().
[slot] void QGraphicsView::updateScene(const QList<QRectF> &rects)
Планирует обновление прямоугольников сцены rects.
См. также QGraphicsScene::changed().
[slot] void QGraphicsView::updateSceneRect(const QRectF &rect)
Уведомляет QGraphicsView, что прямоугольник сцены сцены изменился. rect — новый прямоугольник сцены. Если у представления уже есть явно заданный прямоугольник сцены, эта функция ничего не делает.
См. также sceneRect и QGraphicsScene::sceneRectChanged().
[virtual] QGraphicsView::~QGraphicsView()
Деструктор объекта QGraphicsView.
void QGraphicsView::centerOn(const QPointF &pos)
Прокручивает содержимое области просмотра так, чтобы сцена координата pos была центрирована в представлении.
Поскольку pos — координата с плавающей запятой, а полосы прокрутки работают с целочисленными координатами, центрирование является лишь приближением.
Примечание: Если элемент находится близко к границе или за пределами её, он будет виден в представлении, но не центрирован.
См. также ensureVisible().
void QGraphicsView::centerOn(qreal x, qreal y)
Это перегруженная функция.
Эта функция предоставлена для удобства. Она эквивалентна вызову centerOn(QPointF(x, y)).
void QGraphicsView::centerOn(const QGraphicsItem *item)
Это перегруженный метод.
Прокручивает содержимое области просмотра так, чтобы элемент item был центрирован в представлении.
См. также ensureVisible().
[override virtual protected] void QGraphicsView::contextMenuEvent(QContextMenuEvent *event)
Переопределяет: QAbstractScrollArea::contextMenuEvent(QContextMenuEvent *e).
[override virtual protected] void QGraphicsView::dragEnterEvent(QDragEnterEvent *event)
Переопределяет: QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event).
[override virtual protected] void QGraphicsView::dragLeaveEvent(QDragLeaveEvent *event)
Переопределяет: QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event).
[override virtual protected] void QGraphicsView::dragMoveEvent(QDragMoveEvent *event)
Переопределяет: QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event).
[virtual protected] void QGraphicsView::drawBackground(QPainter *painter, const QRectF &rect)
Отображает фон сцены с помощью painter перед отрисовкой элементов и переднего плана. Переопределите эту функцию, чтобы задать пользовательский фон для этого представления.
Если нужно только задать цвет, текстуру или градиент фона, можно вызвать setBackgroundBrush() вместо этого.
Все операции рисования выполняются в координатах сцены. rect — это видимая прямоугольная область.
В стандартной реализации rect заполняется с помощью backgroundBrush представления. Если такая кисть не определена (по умолчанию), вызывается функция drawBackground() сцены.
См. также drawForeground() и QGraphicsScene::drawBackground().
[virtual protected] void QGraphicsView::drawForeground(QPainter *painter, const QRectF &rect)
Отображает передний план сцены с помощью painter после отрисовки фона и всех элементов. Переопределите эту функцию, чтобы задать пользовательский передний план для этого представления.
Если нужно только задать цвет, текстуру или градиент переднего плана, можно вызвать setForegroundBrush() вместо этого.
Все операции рисования выполняются в координатах сцены. rect — это видимая прямоугольная область.
В стандартной реализации rect заполняется с помощью foregroundBrush представления. Если такая кисть не определена (по умолчанию), вызывается функция drawForeground() сцены.
См. также drawBackground() и QGraphicsScene::drawForeground().
[override virtual protected] void QGraphicsView::dropEvent(QDropEvent *event)
Переопределяет: QAbstractScrollArea::dropEvent(QDropEvent *event).
void QGraphicsView::ensureVisible(const QRectF &rect, int xmargin = 50, int ymargin = 50)
Прокручивает содержимое области просмотра так, чтобы прямоугольник сцены rect был виден с отступами, заданными в пикселях параметрами xmargin и ymargin. Если указанный прямоугольник недоступен, содержимое прокручивается до ближайшей допустимой позиции. Значение по умолчанию для обоих отступов — 50 пикселей.
См. также centerOn().
void QGraphicsView::ensureVisible(qreal x, qreal y, qreal w, qreal h, int xmargin = 50, int ymargin = 50)
Это перегруженный метод.
Эта функция предоставлена для удобства. Она эквивалентна вызову ensureVisible(QRectF(x, y, w, h), xmargin, ymargin).
void QGraphicsView::ensureVisible(const QGraphicsItem *item, int xmargin = 50, int ymargin = 50)
Это перегруженный метод.
Прокручивает содержимое области просмотра так, чтобы центр элемента item был виден с отступами, заданными в пикселях параметрами xmargin и ymargin. Если указанная точка недоступна, содержимое прокручивается до ближайшей допустимой позиции. Значение по умолчанию для обоих отступов — 50 пикселей.
См. также centerOn().
[override virtual protected] bool QGraphicsView::event(QEvent *event)
Переопределяет: QAbstractScrollArea::event(QEvent *event).
void QGraphicsView::fitInView(const QRectF &rect, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)
Масштабирует матрицу представления и прокручивает полосы прокрутки так, чтобы прямоугольник сцены rect поместился внутри области просмотра. rect должен находиться внутри прямоугольника сцены; в противном случае fitInView() не гарантирует, что весь прямоугольник будет виден.
Функция сохраняет поворот, сдвиг или наклон представления. Представление масштабируется в соответствии с aspectRatioMode. Если прямоугольник не помещается плотно, он центрируется в представлении.
Часто fitInView() вызывают внутри переопределения resizeEvent(), чтобы обеспечить автоматическое масштабирование всей сцены или ее частей при изменении размера области просмотра. Однако следует учесть, что вызов fitInView() изнутри resizeEvent() может привести к нежелательной рекурсии изменения размера, если новая трансформация изменяет автоматический режим полос прокрутки. Вы можете изменить режим полос прокрутки на «всегда включено» или «всегда выключено», чтобы предотвратить это (см. horizontalScrollBarPolicy() и verticalScrollBarPolicy()).
Если rect пустой или область просмотра слишком мала, функция ничего не делает.
См. также setTransform(), ensureVisible() и centerOn().
void QGraphicsView::fitInView(qreal x, qreal y, qreal w, qreal h, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)
Это перегруженный метод.
Эта вспомогательная функция эквивалентна вызову fitInView(QRectF(x, y, w, h), aspectRatioMode).
См. также ensureVisible() и centerOn().
void QGraphicsView::fitInView(const QGraphicsItem *item, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)
Это перегруженный метод.
Обеспечивает, что элемент item плотно помещается внутри представления, масштабируя представление в соответствии с aspectRatioMode.
См. также ensureVisible() и centerOn().
[override virtual protected] void QGraphicsView::focusInEvent(QFocusEvent *event)
Переопределяет: QWidget::focusInEvent(QFocusEvent *event).
[override virtual protected] bool QGraphicsView::focusNextPrevChild(bool next)
Переопределяет: QWidget::focusNextPrevChild(bool next).
[override virtual protected] void QGraphicsView::focusOutEvent(QFocusEvent *event)
Переопределяет: QWidget::focusOutEvent(QFocusEvent *event).
[override virtual protected] void QGraphicsView::inputMethodEvent(QInputMethodEvent *event)
Переопределяет: QWidget::inputMethodEvent(QInputMethodEvent *event).
[override virtual] QVariant QGraphicsView::inputMethodQuery(Qt::InputMethodQuery query) const
Реализует: QWidget::inputMethodQuery(Qt::InputMethodQuery query) const.
bool QGraphicsView::isTransformed() const
Возвращает true, если вид преобразован (т.е., присвоено не тождественное преобразование или откорректированы полосы прокрутки).
Данная функция была введена в Qt 4.6.
См. также setTransform(), horizontalScrollBar() и verticalScrollBar().
QGraphicsItem *QGraphicsView::itemAt(const QPoint &pos) const
Возвращает элемент в позиции pos, которая задана в координатах области просмотра. Если в этой позиции несколько элементов, функция возвращает самый верхний элемент.
Пример:
void CustomView::mousePressEvent(QMouseEvent *event)
{
if (QGraphicsItem *item = itemAt(event->pos())) {
qDebug() << "You clicked on item" << item;
} else {
qDebug("You didn't click on an item.");
}
} См. также items() и Сортировка.
QGraphicsItem *QGraphicsView::itemAt(int x, int y) const
Это перегруженная функция.
Функция предоставлена для удобства. Она эквивалентна вызову itemAt(QPoint(x, y)).
QList<QGraphicsItem *> QGraphicsView::items() const
Возвращает список всех элементов в связанной сцене в порядке убывания стека (т.е., первый элемент в возвращаемом списке — это самый верхний элемент).
См. также QGraphicsScene::items() и Сортировка.
QList<QGraphicsItem *> QGraphicsView::items(const QPoint &pos) const
Возвращает список всех элементов в позиции pos в представлении. Элементы перечисляются в порядке убывания стека (т.е., первый элемент в списке — самый верхний, а последний — самый нижний). pos задана в координатах области просмотра.
Эта функция чаще всего используется внутри обработчиков событий мыши в подклассе QGraphicsView. pos задана в не преобразованных координатах области просмотра, как и QMouseEvent::pos().
void CustomView::mousePressEvent(QMouseEvent *event)
{
qDebug() << "There are" << items(event->pos()).size()
<< "items at position" << mapToScene(event->pos());
} См. также QGraphicsScene::items() и Сортировка.
QList<QGraphicsItem *> QGraphicsView::items(int x, int y) const
Функция предоставлена для удобства. Она эквивалентна вызову items(QPoint(x, y)).
QList<QGraphicsItem *> QGraphicsView::items(const QRect &rect, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
Это перегруженная функция.
Возвращает список всех элементов, которые, в зависимости от mode, либо содержатся в, либо пересекаются с rect. rect задана в координатах области просмотра.
Значение по умолчанию для mode — Qt::IntersectsItemShape; возвращаются все элементы, чья точная форма пересекается или содержится в rect.
Элементы отсортированы в порядке убывания стека (т.е., первый элемент в возвращаемом списке — самый верхний).
См. также itemAt(), items(), mapToScene() и Сортировка.
QList<QGraphicsItem *> QGraphicsView::items(int x, int y, int w, int h, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
Эта функция для удобства эквивалентна вызову items(QRectF(x, y, w, h), mode).
Функция была введена в Qt 4.3.
QList<QGraphicsItem *> QGraphicsView::items(const QPolygon &polygon, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
Это перегруженная функция.
Возвращает список всех элементов, которые, в зависимости от mode, либо содержатся в, либо пересекаются с polygon. polygon задана в координатах области просмотра.
Значение по умолчанию для mode — Qt::IntersectsItemShape; возвращаются все элементы, чья точная форма пересекается или содержится в polygon.
Элементы отсортированы по убыванию стека (т.е., первый элемент в возвращаемом списке — самый верхний).
См. также itemAt(), items(), mapToScene() и Сортировка.
QList<QGraphicsItem *> QGraphicsView::items(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
Это перегруженная функция.
Возвращает список всех элементов, которые, в зависимости от mode, либо содержатся в, либо пересекаются с path. path задана в координатах области просмотра.
Значение по умолчанию для mode — Qt::IntersectsItemShape; возвращаются все элементы, чья точная форма пересекается или содержится в path.
См. также itemAt(), items(), mapToScene() и Сортировка.
[override virtual protected] void QGraphicsView::keyPressEvent(QKeyEvent *event)
Реализует: QAbstractScrollArea::keyPressEvent(QKeyEvent *e).
[override virtual protected] void QGraphicsView::keyReleaseEvent(QKeyEvent *event)
Реализует: QWidget::keyReleaseEvent(QKeyEvent *event).
QPoint QGraphicsView::mapFromScene(const QPointF &point) const
Возвращает сцену координату point в координатах области просмотра.
См. также mapToScene().
QPolygon QGraphicsView::mapFromScene(const QRectF &rect) const
Возвращает сцену прямоугольник rect в виде многоугольника координат области просмотра.
См. также mapToScene().
QPolygon QGraphicsView::mapFromScene(const QPolygonF &polygon) const
Возвращает сцену многоугольник polygon в виде многоугольника координат области просмотра.
См. также mapToScene().
QPainterPath QGraphicsView::mapFromScene(const QPainterPath &path) const
Возвращает сцену траекторию рисования path в виде траектории рисования координат области просмотра.
См. также mapToScene().
QPoint QGraphicsView::mapFromScene(qreal x, qreal y) const
Эта функция предоставлена для удобства. Она эквивалентна вызову mapFromScene(QPointF(x, y)).
QPolygon QGraphicsView::mapFromScene(qreal x, qreal y, qreal w, qreal h) const
Эта функция предоставлена для удобства. Она эквивалентна вызову mapFromScene(QRectF(x, y, w, h)).
QPointF QGraphicsView::mapToScene(const QPoint &point) const
Возвращает координату области просмотра point, преобразованную в координаты сцены.
Примечание: Может быть полезно отобразить весь прямоугольник, охватываемый пикселем в point, вместо самой точки. Для этого можно вызвать mapToScene(QRect(point, QSize(2, 2))).
См. также mapFromScene().
QPolygonF QGraphicsView::mapToScene(const QRect &rect) const
Возвращает прямоугольник области просмотра rect, преобразованный в многоугольник координат сцены.
См. также mapFromScene().
QPolygonF QGraphicsView::mapToScene(const QPolygon &polygon) const
Возвращает многоугольник области просмотра polygon, преобразованный в многоугольник координат сцены.
См. также mapFromScene().
QPainterPath QGraphicsView::mapToScene(const QPainterPath &path) const
Возвращает траекторию рисования области просмотра path, преобразованную в траекторию рисования координат сцены.
См. также mapFromScene().
QPointF QGraphicsView::mapToScene(int x, int y) const
Эта функция предоставляется для удобства. Она эквивалентна вызову mapToScene(QPoint(x, y)).
QPolygonF QGraphicsView::mapToScene(int x, int y, int w, int h) const
Эта функция предоставляется для удобства. Она эквивалентна вызову mapToScene(QRect(x, y, w, h)).
[override virtual protected] void QGraphicsView::mouseDoubleClickEvent(QMouseEvent *event)
Переопределяет: QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e).
[override virtual protected] void QGraphicsView::mouseMoveEvent(QMouseEvent *event)
Переопределяет: QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e).
[override virtual protected] void QGraphicsView::mousePressEvent(QMouseEvent *event)
Переопределяет: QAbstractScrollArea::mousePressEvent(QMouseEvent *e).
[override virtual protected] void QGraphicsView::mouseReleaseEvent(QMouseEvent *event)
Переопределяет: QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e).
[override virtual protected] void QGraphicsView::paintEvent(QPaintEvent *event)
Переопределяет: QAbstractScrollArea::paintEvent(QPaintEvent *event).
void QGraphicsView::render(QPainter *painter, const QRectF &target = QRectF(), const QRect &source = QRect(), Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio)
Отображает прямоугольник source, который задан в координатах представления, из сцены в target, который задан в координатах устройства рисования, используя painter. Эта функция полезна для захвата содержимого представления на устройстве рисования, например, на QImage (например, для создания скриншота) или для печати на QPrinter. Например:
QGraphicsScene scene;
scene.addItem(...
...
QGraphicsView view(&scene);
view.show();
...
QPrinter printer(QPrinter::HighResolution);
printer.setPageSize(QPrinter::A4);
QPainter painter(&printer);
// print, fitting the viewport contents into a full page
view.render(&painter);
// print the upper half of the viewport into the lower.
// half of the page.
QRect viewport = view.viewport()->rect();
view.render(&painter,
QRectF(0, printer.height() / 2,
printer.width(), printer.height() / 2),
viewport.adjusted(0, 0, 0, -viewport.height() / 2)); Если source равен пустому прямоугольнику, эта функция будет использовать viewport()->rect() для определения того, что рисовать. Если target равен пустому прямоугольнику, будут использоваться полные размеры устройства рисования painter (например, для QPrinter — размер страницы).
Содержимое прямоугольника source преобразуется в соответствии с aspectRatioMode для размещения в прямоугольнике target. По умолчанию сохраняется соотношение сторон, и source масштабируется для размещения в target.
См. также QGraphicsScene::render().
void QGraphicsView::resetCachedContent()
Сбрасывает кэш содержимого. Вызов этой функции очистит кэш QGraphicsView. Если текущий режим кэширования — CacheNone, эта функция ничего не делает.
Эта функция вызывается автоматически, когда изменяются свойства backgroundBrush или QGraphicsScene::backgroundBrush; вам нужно вызывать эту функцию только в том случае, если вы переопределили QGraphicsScene::drawBackground() или QGraphicsView::drawBackground() для рисования пользовательского фона и вам нужно запустить полную перерисовку.
См. также cacheMode().
void QGraphicsView::resetTransform()
Сбрасывает преобразование представления до единичной матрицы.
См. также transform() и setTransform().
[override virtual protected] void QGraphicsView::resizeEvent(QResizeEvent *event)
Переопределяет: QAbstractScrollArea::resizeEvent(QResizeEvent *event).
void QGraphicsView::rotate(qreal angle)
Поворачивает текущее преобразование представления на angle градусов по часовой стрелке.
См. также setTransform(), transform(), scale(), shear() и translate().
QRect QGraphicsView::rubberBandRect() const
Эта функция возвращает текущую область резиновой полосы (в координатах представления), если пользователь в данный момент выполняет выделение элемента с помощью резиновой полосы. Когда пользователь не использует резиновую полосу, эта функция возвращает (пустой) QRectF().
Обратите внимание, что часть этого QRect может быть вне визуальной области просмотра. Например, она может содержать отрицательные значения.
Эта функция была добавлена в Qt 5.1.
См. также rubberBandSelectionMode и rubberBandChanged().
void QGraphicsView::scale(qreal sx, qreal sy)
Масштабирует текущее преобразование представления на (sx, sy).
См. также setTransform(), transform(), rotate(), shear() и translate().
QGraphicsScene *QGraphicsView::scene() const
Возвращает указатель на сцену, которая в данный момент отображается в представлении. Если в настоящее время сцена не отображается, возвращается nullptr.
См. также setScene().
[override virtual protected] void QGraphicsView::scrollContentsBy(int dx, int dy)
Переопределяет: QAbstractScrollArea::scrollContentsBy(int dx, int dy).
void QGraphicsView::setOptimizationFlag(QGraphicsView::OptimizationFlag flag, bool enabled = true)
Включает flag, если enabled равно true; в противном случае отключает flag.
См. также optimizationFlags.
void QGraphicsView::setRenderHint(QPainter::RenderHint hint, bool enabled = true)
Если enabled равно true, то параметр отрисовки hint включен; в противном случае он выключен.
См. также renderHints.
void QGraphicsView::setScene(QGraphicsScene *scene)
Устанавливает текущую сцену на scene. Если scene уже отображается, эта функция ничего не делает.
Когда сцена устанавливается на представлении, сигнал QGraphicsScene::changed() автоматически подключается к слоту updateScene() этого представления, и полосы прокрутки представления настраиваются для соответствия размеру сцены.
Представление не принимает владение над scene.
См. также scene().
void QGraphicsView::setTransform(const QTransform &matrix, bool combine = false)
Устанавливает текущую матрицу преобразования представления на matrix.
Если combine равно true, то matrix комбинируется с текущей матрицей; в противном случае matrix заменяет текущую матрицу. По умолчанию combine равно false.
Матрица преобразования преобразует сцену в координаты просмотра. Используя стандартное преобразование, задаваемое единичной матрицей, один пиксель в представлении соответствует одному единичному значению в сцене (например, прямоугольный элемент 10x10 рисуется с использованием 10x10 пикселей в представлении). Если применяется матрица масштабирования 2x2, сцена будет отрисована в соотношении 1:2 (например, прямоугольный элемент 10x10 затем рисуется с использованием 20x20 пикселей в представлении).
Пример:
QGraphicsScene scene;
scene.addText("GraphicsView rotated clockwise");
QGraphicsView view(&scene);
view.rotate(90); // the text is rendered with a 90 degree clockwise rotation
view.show(); Для упрощения взаимодействия с элементами, использующими преобразованное представление, QGraphicsView предоставляет функции mapTo... и mapFrom..., которые могут осуществлять преобразование между координатами сцены и представления. Например, вы можете вызвать mapToScene() для преобразования координаты представления в координату сцены с плавающей запятой или mapFromScene() для преобразования координат сцены с плавающей запятой в координаты представления.
См. также transform(), rotate(), scale(), shear() и translate().
void QGraphicsView::shear(qreal sh, qreal sv)
Производит сдвиг текущего преобразования представления на (sh, sv).
См. также setTransform(), transform(), rotate(), scale() и translate().
[override virtual protected] void QGraphicsView::showEvent(QShowEvent *event)
Переопределяет: QWidget::showEvent(QShowEvent *event).
[override virtual] QSize QGraphicsView::sizeHint() const
Переопределяет: QAbstractScrollArea::sizeHint() const.
QTransform QGraphicsView::transform() const
Возвращает текущую матрицу преобразования для представления. Если текущее преобразование не задано, возвращается единичная матрица.
См. также setTransform(), rotate(), scale(), shear() и translate().
void QGraphicsView::translate(qreal dx, qreal dy)
Смещает текущее преобразование представления на (dx, dy).
См. также setTransform(), transform(), rotate() и shear().
[override virtual protected] bool QGraphicsView::viewportEvent(QEvent *event)
Переопределяет: QAbstractScrollArea::viewportEvent(QEvent *event).
QTransform QGraphicsView::viewportTransform() const
Возвращает матрицу, которая преобразует координаты сцены в координаты области просмотра.
См. также mapToScene() и mapFromScene().
[override virtual protected] void QGraphicsView::wheelEvent(QWheelEvent *event)
Переопределяет: QAbstractScrollArea::wheelEvent(QWheelEvent *e).
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qgraphicsview.html