Spec-Zone.ru › Qt 5.9

Класс QGraphicsView

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

Заголовок: #include <QGraphicsView>
qmake: QT += widgets
С версии: Qt 4.2
Наследуется от: QAbstractScrollArea
Наследует:

QChartView

  • Список всех членов, включая унаследованные
  • Устаревшие члены

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

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

Свойства

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

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

QGraphicsView(QWidget *parent = Q_NULLPTR)
QGraphicsView(QGraphicsScene *scene, QWidget *parent = Q_NULLPTR)
~QGraphicsView()
Qt::Alignment alignment() const
QBrush backgroundBrush() const
CacheMode cacheMode() const
void centerOn(const QPointF &pos)
void centerOn(qreal x, qreal y)
void centerOn(const QGraphicsItem *item)
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
void setBackgroundBrush(const QBrush &brush)
void setCacheMode(CacheMode mode)
void setDragMode(DragMode mode)
void setForegroundBrush(const QBrush &brush)
void setInteractive(bool allowed)
void setMatrix(const QMatrix &matrix, bool combine = false)
void setOptimizationFlag(OptimizationFlag flag, bool enabled = true)
void setOptimizationFlags(OptimizationFlags flags)
void setRenderHint(QPainter::RenderHint hint, bool enabled = true)
void setRenderHints(QPainter::RenderHints hints)
void setResizeAnchor(ViewportAnchor anchor)
void setRubberBandSelectionMode(Qt::ItemSelectionMode mode)
void setScene(QGraphicsScene *scene)
void setSceneRect(const QRectF &rect)
void setSceneRect(qreal x, qreal y, qreal w, qreal h)
void setTransform(const QTransform &matrix, bool combine = false)
void setTransformationAnchor(ViewportAnchor anchor)
void setViewportUpdateMode(ViewportUpdateMode mode)
void shear(qreal sh, qreal sv)
QTransform transform() const
ViewportAnchor transformationAnchor() const
void translate(qreal dx, qreal dy)
QTransform viewportTransform() const
ViewportUpdateMode viewportUpdateMode() const

Реализованные общедоступные функции

virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const
virtual QSize sizeHint() const
  • 20 общедоступных функций унаследованных от QAbstractScrollArea
  • 14 общедоступных функций унаследованных от QFrame
  • 214 общедоступных функций унаследованных от QWidget
  • 32 общедоступных функций унаследованных от QObject
  • 14 общедоступных функций унаследованных от QPaintDevice

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

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

Сигналы

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

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

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

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

виртуальный void contextMenuEvent(QContextMenuEvent *event)
виртуальный void dragEnterEvent(QDragEnterEvent *event)
виртуальный void dragLeaveEvent(QDragLeaveEvent *event)
виртуальный void dragMoveEvent(QDragMoveEvent *event)
виртуальный void dropEvent(QDropEvent *event)
виртуальный bool event(QEvent *event)
виртуальный void focusInEvent(QFocusEvent *event)
виртуальный bool focusNextPrevChild(bool next)
виртуальный void focusOutEvent(QFocusEvent *event)
виртуальный void inputMethodEvent(QInputMethodEvent *event)
виртуальный void keyPressEvent(QKeyEvent *event)
виртуальный void keyReleaseEvent(QKeyEvent *event)
виртуальный void mouseDoubleClickEvent(QMouseEvent *event)
виртуальный void mouseMoveEvent(QMouseEvent *event)
виртуальный void mousePressEvent(QMouseEvent *event)
виртуальный void mouseReleaseEvent(QMouseEvent *event)
виртуальный void paintEvent(QPaintEvent *event)
виртуальный void resizeEvent(QResizeEvent *event)
виртуальный void scrollContentsBy(int dx, int dy)
виртуальный void showEvent(QShowEvent *event)
виртуальный bool viewportEvent(QEvent *event)
виртуальный void wheelEvent(QWheelEvent *event)
  • 20 защищенные функции, унаследованные от QAbstractScrollArea
  • 4 защищенные функции, унаследованные от QFrame
  • 35 защищенные функции, унаследованные от QWidget
  • 9 защищенные функции, унаследованные от QObject
  • 1 защищенная функция, унаследованная от QPaintDevice

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

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

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

  • 5 статические публичные члены, унаследованные от QWidget
  • 11 статические публичные члены, унаследованные от QObject

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

enum QGraphicsView::CacheModeFlagflags QGraphicsView::CacheMode

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

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

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

См. также cacheMode.

enum QGraphicsView::DragMode

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

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

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

enum QGraphicsView::OptimizationFlagflags QGraphicsView::OptimizationFlags

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

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

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

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

enum QGraphicsView::ViewportAnchor

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

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

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

enum QGraphicsView::ViewportUpdateMode

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

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

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

См. также viewportUpdateMode.

END_OF_DOCUMENT_MARKER

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

alignment : Qt::Alignment

Данное свойство задаёт выравнивание сцены в представлении при отображении всей сцены.

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

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

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

backgroundBrush : QBrush

Данное свойство задаёт кисть фона сцены.

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

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

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

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

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

cacheMode : CacheMode

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

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

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

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

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

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

CacheMode cacheMode() const
void setCacheMode(CacheMode mode)

См. также resetCachedContent() и QPixmapCache.

dragMode : DragMode

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

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

Это поведение затрагивает только щелчки мышью, которые не обрабатываются ни одним элементом. Вы можете определить пользовательское поведение, создав подкласс QGraphicsView и переопределив метод mouseMoveEvent().

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

DragMode dragMode() const
void setDragMode(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.

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

OptimizationFlags optimizationFlags() const
void setOptimizationFlags(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 использует выравнивание представления для позиционирования сцены в представлении.

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

ViewportAnchor resizeAnchor() const
void setResizeAnchor(ViewportAnchor anchor)

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

rubberBandSelectionMode : Qt::ItemSelectionMode

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

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

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

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

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

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

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

sceneRect : QRectF

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

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

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

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

ViewportAnchor transformationAnchor() const
void setTransformationAnchor(ViewportAnchor anchor)

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

viewportUpdateMode : ViewportUpdateMode

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

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

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

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

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

ViewportUpdateMode viewportUpdateMode() const
void setViewportUpdateMode(ViewportUpdateMode mode)

См. также ViewportUpdateMode и cacheMode.

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

QGraphicsView::QGraphicsView(QWidget *parent = Q_NULLPTR)

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

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

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

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

void QGraphicsView::contextMenuEvent(QContextMenuEvent *event)

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

void QGraphicsView::dragEnterEvent(QDragEnterEvent *event)

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

void QGraphicsView::dragLeaveEvent(QDragLeaveEvent *event)

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

void QGraphicsView::dragMoveEvent(QDragMoveEvent *event)

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

void QGraphicsView::drawBackground(QPainter *painter, const QRectF &rect)

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

Если всё, что вам нужно, — определить цвет, текстуру или градиент фона, можно вызвать setBackgroundBrush() вместо этого.

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

Функция по умолчанию заполняет rect с помощью кисти фона представления backgroundBrush. Если такая кисть не задана (по умолчанию), вместо этого вызывается функция drawBackground() сцены.

См. также drawForeground() и QGraphicsScene::drawBackground().

void QGraphicsView::drawForeground(QPainter *painter, const QRectF &rect)

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

Если всё, что вам нужно, — определить цвет, текстуру или градиент переднего плана, можно вызвать setForegroundBrush() вместо этого.

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

Функция по умолчанию заполняет rect с помощью кисти переднего плана представления foregroundBrush. Если такая кисть не задана (по умолчанию), вместо этого вызывается функция drawForeground() сцены.

См. также drawBackground() и QGraphicsScene::drawForeground().

[virtual protected] void QGraphicsView::dropEvent(QDropEvent *event)

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

void QGraphicsView::ensureVisible(const QRectF &rect, int xmargin = 50, int ymargin = 50)

Прокручивает содержимое области просмотра так, чтобы прямоугольник сцены rect был виден, с отступами, заданными в пикселях значениями xmargin и ymargin. Если заданный прямоугольник недостижим, содержимое прокручивается до ближайшей допустимой позиции. Значение по умолчанию для обоих отступов составляет 50 пикселей.

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

void QGraphicsView::ensureVisible(qreal x, qreal y, qreal w, qreal h, int xmargin = 50, int ymargin = 50)

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

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

void QGraphicsView::ensureVisible(const QGraphicsItem *item, int xmargin = 50, int ymargin = 50)

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

Прокручивает содержимое области просмотра так, чтобы центр элемента item был виден, с отступами, заданными в пикселях значениями xmargin и ymargin. Если указанная точка недостижима, содержимое прокручивается до ближайшей допустимой позиции. Значение по умолчанию для обоих отступов составляет 50 пикселей.

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

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

Переопределено из QObject::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().

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

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

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

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

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

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

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

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

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

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

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

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(), и Сортировка.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

QMatrix QGraphicsView::matrix() const

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

void QGraphicsView::resetCachedContent()

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

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

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

void QGraphicsView::resetMatrix()

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

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

void QGraphicsView::resetTransform()

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

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

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

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

void QGraphicsView::rotate(qreal angle)

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

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

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

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

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

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

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

QRect QGraphicsView::rubberBandRect() const

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

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

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

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

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

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

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

QGraphicsScene *QGraphicsView::scene() const

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

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

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

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

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

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

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

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

Пример:

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

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

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

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

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

END_OF_DOCUMENT_MARKER

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

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

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

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

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

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

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

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

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

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

[virtual] QSize QGraphicsView::sizeHint() const

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

QTransform QGraphicsView::transform() const

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

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

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

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

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

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

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

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

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

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

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

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

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

QTransform QGraphicsView::viewportTransform() const

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

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

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

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

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

Spec-Zone.ru

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