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