|  | Home · All Classes · Modules

# QGraphicsView Class Reference
[QtGui module]

The QGraphicsView class provides a widget for displaying the contents of a QGraphicsScene. More...

Inherits QAbstractScrollArea.

Inherited by QDeclarativeView.

### Types

- class CacheMode
- enum CacheModeFlag { CacheNone, CacheBackground }
- enum DragMode { NoDrag, ScrollHandDrag, RubberBandDrag }
- enum OptimizationFlag { DontClipPainter, DontSavePainterState, DontAdjustForAntialiasing }
- class OptimizationFlags
- enum ViewportAnchor { NoAnchor, AnchorViewCenter, AnchorUnderMouse }
- enum ViewportUpdateMode { FullViewportUpdate, MinimalViewportUpdate, SmartViewportUpdate, BoundingRectViewportUpdate, NoViewportUpdate }

### Methods

- __init__ (self, QWidget parent = None)
- __init__ (self, QGraphicsScene scene, QWidget parent = None)
- Qt.Alignment alignment (self)
- QBrush backgroundBrush (self)
- CacheMode cacheMode (self)
- centerOn (self, QPointF pos)
- centerOn (self, QGraphicsItem item)
- centerOn (self, float ax, float ay)
- contextMenuEvent (self, QContextMenuEvent event)
- dragEnterEvent (self, QDragEnterEvent event)
- dragLeaveEvent (self, QDragLeaveEvent event)
- DragMode dragMode (self)
- dragMoveEvent (self, QDragMoveEvent event)
- drawBackground (self, QPainter painter, QRectF rect)
- drawForeground (self, QPainter painter, QRectF rect)
- drawItems (self, QPainter painter, list-of-QGraphicsItem items, list-of-QStyleOptionGraphicsItem options)
- dropEvent (self, QDropEvent event)
- ensureVisible (self, QRectF rect, int xMargin = 50, int yMargin = 50)
- ensureVisible (self, QGraphicsItem item, int xMargin = 50, int yMargin = 50)
- ensureVisible (self, float x, float y, float w, float h, int xMargin = 50, int yMargin = 50)
- bool event (self, QEvent event)
- fitInView (self, QRectF rect, Qt.AspectRatioMode mode = Qt.IgnoreAspectRatio)
- fitInView (self, QGraphicsItem item, Qt.AspectRatioMode mode = Qt.IgnoreAspectRatio)
- fitInView (self, float x, float y, float w, float h, Qt.AspectRatioMode mode = Qt.IgnoreAspectRatio)
- focusInEvent (self, QFocusEvent event)
- bool focusNextPrevChild (self, bool next)
- focusOutEvent (self, QFocusEvent event)
- QBrush foregroundBrush (self)
- inputMethodEvent (self, QInputMethodEvent event)
- QVariant inputMethodQuery (self, Qt.InputMethodQuery query)
- invalidateScene (self, QRectF rect = QRectF(), QGraphicsScene.SceneLayers layers = QGraphicsScene.AllLayers)
- bool isInteractive (self)
- bool isTransformed (self)
- QGraphicsItem itemAt (self, QPoint pos)
- QGraphicsItem itemAt (self, int ax, int ay)
- list-of-QGraphicsItem items (self)
- list-of-QGraphicsItem items (self, QPoint pos)
- list-of-QGraphicsItem items (self, int ax, int ay)
- list-of-QGraphicsItem items (self, int x, int y, int w, int h, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)
- list-of-QGraphicsItem items (self, QRect rect, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)
- list-of-QGraphicsItem items (self, QPolygon polygon, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)
- list-of-QGraphicsItem items (self, QPainterPath path, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)
- keyPressEvent (self, QKeyEvent event)
- keyReleaseEvent (self, QKeyEvent event)
- QPoint mapFromScene (self, QPointF point)
- QPolygon mapFromScene (self, QRectF rect)
- QPolygon mapFromScene (self, QPolygonF polygon)
- QPainterPath mapFromScene (self, QPainterPath path)
- QPoint mapFromScene (self, float ax, float ay)
- QPolygon mapFromScene (self, float ax, float ay, float w, float h)
- QPointF mapToScene (self, QPoint point)
- QPolygonF mapToScene (self, QRect rect)
- QPolygonF mapToScene (self, QPolygon polygon)
- QPainterPath mapToScene (self, QPainterPath path)
- QPointF mapToScene (self, int ax, int ay)
- QPolygonF mapToScene (self, int ax, int ay, int w, int h)
- QMatrix matrix (self)
- mouseDoubleClickEvent (self, QMouseEvent event)
- mouseMoveEvent (self, QMouseEvent event)
- mousePressEvent (self, QMouseEvent event)
- mouseReleaseEvent (self, QMouseEvent event)
- OptimizationFlags optimizationFlags (self)
- paintEvent (self, QPaintEvent event)
- render (self, QPainter painter, QRectF target = QRectF(), QRect source = QRect(), Qt.AspectRatioMode mode = Qt.KeepAspectRatio)
- QPainter.RenderHints renderHints (self)
- resetCachedContent (self)
- resetMatrix (self)
- resetTransform (self)
- ViewportAnchor resizeAnchor (self)
- resizeEvent (self, QResizeEvent event)
- rotate (self, float angle)
- Qt.ItemSelectionMode rubberBandSelectionMode (self)
- scale (self, float sx, float sy)
- QGraphicsScene scene (self)
- QRectF sceneRect (self)
- scrollContentsBy (self, int dx, int dy)
- setAlignment (self, Qt.Alignment alignment)
- setBackgroundBrush (self, QBrush brush)
- setCacheMode (self, CacheMode mode)
- setDragMode (self, DragMode mode)
- setForegroundBrush (self, QBrush brush)
- setInteractive (self, bool allowed)
- setMatrix (self, QMatrix matrix, bool combine = False)
- setOptimizationFlag (self, OptimizationFlag flag, bool enabled = True)
- setOptimizationFlags (self, OptimizationFlags flags)
- setRenderHint (self, QPainter.RenderHint hint, bool on = True)
- setRenderHints (self, QPainter.RenderHints hints)
- setResizeAnchor (self, ViewportAnchor anchor)
- setRubberBandSelectionMode (self, Qt.ItemSelectionMode mode)
- setScene (self, QGraphicsScene scene)
- setSceneRect (self, QRectF rect)
- setSceneRect (self, float ax, float ay, float aw, float ah)
- setTransform (self, QTransform matrix, bool combine = False)
- setTransformationAnchor (self, ViewportAnchor anchor)
- setupViewport (self, QWidget widget)
- setViewportUpdateMode (self, ViewportUpdateMode mode)
- shear (self, float sh, float sv)
- showEvent (self, QShowEvent event)
- QSize sizeHint (self)
- QTransform transform (self)
- ViewportAnchor transformationAnchor (self)
- translate (self, float dx, float dy)
- updateScene (self, list-of-QRectF rects)
- updateSceneRect (self, QRectF rect)
- bool viewportEvent (self, QEvent event)
- QTransform viewportTransform (self)
- ViewportUpdateMode viewportUpdateMode (self)
- wheelEvent (self, QWheelEvent event)

## Detailed Description

The QGraphicsView class provides a widget for displaying the contents of a QGraphicsScene.

QGraphicsView visualizes the contents of a QGraphicsScene in a scrollable viewport. To create a scene with geometrical items, see QGraphicsScene's documentation. QGraphicsView is part of the Graphics View Framework.

To visualize a scene, you start by constructing a QGraphicsView object, passing the address of the scene you want to visualize to QGraphicsView's constructor. Alternatively, you can call setScene() to set the scene at a later point. After you call show(), the view will by default scroll to the center of the scene and display any items that are visible at this point. For example:

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

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

You can explicitly scroll to any position on the scene by using the scroll bars, or by calling centerOn(). By passing a point to centerOn(), QGraphicsView will scroll its viewport to ensure that the point is centered in the view. An overload is provided for scrolling to a QGraphicsItem, in which case QGraphicsView will see to that the center of the item is centered in the view. If all you want is to ensure that a certain area is visible, (but not necessarily centered,) you can call ensureVisible() instead.

QGraphicsView can be used to visualize a whole scene, or only parts of it. The visualized area is by default detected automatically when the view is displayed for the first time (by calling QGraphicsScene.itemsBoundingRect()). To set the visualized area rectangle yourself, you can call setSceneRect(). This will adjust the scroll bars' ranges appropriately. Note that although the scene supports a virtually unlimited size, the range of the scroll bars will never exceed the range of an integer (INT_MIN, INT_MAX).

QGraphicsView visualizes the scene by calling render(). By default, the items are drawn onto the viewport by using a regular QPainter, and using default render hints. To change the default render hints that QGraphicsView passes to QPainter when painting items, you can call setRenderHints().

By default, QGraphicsView provides a regular QWidget for the viewport widget. You can access this widget by calling viewport(), or you can replace it by calling setViewport(). To render using OpenGL, simply call setViewport(new QGLWidget). QGraphicsView takes ownership of the viewport widget.

QGraphicsView supports affine transformations, using QTransform. You can either pass a matrix to setTransform(), or you can call one of the convenience functions rotate(), scale(), translate() or shear(). The most two common transformations are scaling, which is used to implement zooming, and rotation. QGraphicsView keeps the center of the view fixed during a transformation. Because of the scene alignment (setAligment()), translating the view will have no visual impact.

You can interact with the items on the scene by using the mouse and keyboard. QGraphicsView translates the mouse and key events into scene events, (events that inherit QGraphicsSceneEvent,), and forward them to the visualized scene. In the end, it's the individual item that handles the events and reacts to them. For example, if you click on a selectable item, the item will typically let the scene know that it has been selected, and it will also redraw itself to display a selection rectangle. Similiary, if you click and drag the mouse to move a movable item, it's the item that handles the mouse moves and moves itself. Item interaction is enabled by default, and you can toggle it by calling setInteractive().

You can also provide your own custom scene interaction, by creating a subclass of QGraphicsView, and reimplementing the mouse and key event handlers. To simplify how you programmatically interact with items in the view, QGraphicsView provides the mapping functions mapToScene() and mapFromScene(), and the item accessors items() and itemAt(). These functions allow you to map points, rectangles, polygons and paths between view coordinates and scene coordinates, and to find items on the scene using view coordinates.

## Type Documentation

### QGraphicsView.CacheModeFlag

This enum describes the flags that you can set for a QGraphicsView's cache mode.

Constant | Value | Description
--- | --- | ---
`QGraphicsView.CacheNone` | `0x0` | All painting is done directly onto the viewport.
`QGraphicsView.CacheBackground` | `0x1` | The background is cached. This affects both custom backgrounds, and backgrounds based on the backgroundBrush property. When this flag is enabled, QGraphicsView will allocate one pixmap with the full size of the viewport.

The CacheMode type is a typedef for QFlags<CacheModeFlag>. It stores an OR combination of CacheModeFlag values.

See also cacheMode.

### QGraphicsView.DragMode

This enum describes the default action for the view when pressing and dragging the mouse over the viewport.

Constant | Value | Description
--- | --- | ---
`QGraphicsView.NoDrag` | `0` | Nothing happens; the mouse event is ignored.
`QGraphicsView.ScrollHandDrag` | `1` | The cursor changes into a pointing hand, and dragging the mouse around will scroll the scrolbars. This mode works both in interactive and non-interactive mode.
`QGraphicsView.RubberBandDrag` | `2` | A rubber band will appear. Dragging the mouse will set the rubber band geometry, and all items covered by the rubber band are selected. This mode is disabled for non-interactive views.

See also dragMode and QGraphicsScene.setSelectionArea().

### QGraphicsView.OptimizationFlag

This enum describes flags that you can enable to improve rendering performance in QGraphicsView. By default, none of these flags are set. Note that setting a flag usually imposes a side effect, and this effect can vary between paint devices and platforms.

Constant | Value | Description
--- | --- | ---
`QGraphicsView.DontClipPainter` | `0x1` | This value is obsolete and has no effect.
`QGraphicsView.DontSavePainterState` | `0x2` | When rendering, QGraphicsView protects the painter state (see QPainter.save()) when rendering the background or foreground, and when rendering each item. This allows you to leave the painter in an altered state (i.e., you can call QPainter.setPen() or QPainter.setBrush() without restoring the state after painting). However, if the items consistently do restore the state, you should enable this flag to prevent QGraphicsView from doing the same.
`QGraphicsView.DontAdjustForAntialiasing` | `0x4` | Disables QGraphicsView's antialiasing auto-adjustment of exposed areas. Items that render antialiased lines on the boundaries of their QGraphicsItem.boundingRect() can end up rendering parts of the line outside. To prevent rendering artifacts, QGraphicsView expands all exposed regions by 2 pixels in all directions. If you enable this flag, QGraphicsView will no longer perform these adjustments, minimizing the areas that require redrawing, which improves performance. A common side effect is that items that do draw with antialiasing can leave painting traces behind on the scene as they are moved.
`QGraphicsView.IndirectPainting` | `0x8` | Since Qt 4.6, restore the old painting algorithm that calls QGraphicsView.drawItems() and QGraphicsScene.drawItems(). To be used only for compatibility with old code.

This enum was introduced or modified in Qt 4.3.

The OptimizationFlags type is a typedef for QFlags<OptimizationFlag>. It stores an OR combination of OptimizationFlag values.

### QGraphicsView.ViewportAnchor

This enums describe the possible anchors that QGraphicsView can use when the user resizes the view or when the view is transformed.

Constant | Value | Description
--- | --- | ---
`QGraphicsView.NoAnchor` | `0` | No anchor, i.e. the view leaves the scene's position unchanged.
`QGraphicsView.AnchorViewCenter` | `1` | The scene point at the center of the view is used as the anchor.
`QGraphicsView.AnchorUnderMouse` | `2` | The point under the mouse is used as the anchor.

See also resizeAnchor and transformationAnchor.

### QGraphicsView.ViewportUpdateMode

This enum describes how QGraphicsView updates its viewport when the scene contents change or are exposed.

Constant | Value | Description
--- | --- | ---
`QGraphicsView.FullViewportUpdate` | `0` | When any visible part of the scene changes or is reexposed, QGraphicsView will update the entire viewport. This approach is fastest when QGraphicsView spends more time figuring out what to draw than it would spend drawing (e.g., when very many small items are repeatedly updated). This is the preferred update mode for viewports that do not support partial updates, such as QGLWidget, and for viewports that need to disable scroll optimization.
`QGraphicsView.MinimalViewportUpdate` | `1` | QGraphicsView will determine the minimal viewport region that requires a redraw, minimizing the time spent drawing by avoiding a redraw of areas that have not changed. This is QGraphicsView's default mode. Although this approach provides the best performance in general, if there are many small visible changes on the scene, QGraphicsView might end up spending more time finding the minimal approach than it will spend drawing.
`QGraphicsView.SmartViewportUpdate` | `2` | QGraphicsView will attempt to find an optimal update mode by analyzing the areas that require a redraw.
`QGraphicsView.BoundingRectViewportUpdate` | `4` | The bounding rectangle of all changes in the viewport will be redrawn. This mode has the advantage that QGraphicsView searches only one region for changes, minimizing time spent determining what needs redrawing. The disadvantage is that areas that have not changed also need to be redrawn.
`QGraphicsView.NoViewportUpdate` | `3` | QGraphicsView will never update its viewport when the scene changes; the user is expected to control all updates. This mode disables all (potentially slow) item visibility testing in QGraphicsView, and is suitable for scenes that either require a fixed frame rate, or where the viewport is otherwise updated externally.

This enum was introduced or modified in Qt 4.3.

See also viewportUpdateMode.

## Method Documentation

### QGraphicsView.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsView. parent is passed to QWidget's constructor.

### QGraphicsView.__init__ (self, QGraphicsScene scene, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsView and sets the visualized scene to scene. parent is passed to QWidget's constructor.

### Qt.Alignment QGraphicsView.alignment (self)

### QBrush QGraphicsView.backgroundBrush (self)

### CacheMode QGraphicsView.cacheMode (self)

### QGraphicsView.centerOn (self, QPointF pos)

Scrolls the contents of the viewport to ensure that the scene coordinate pos, is centered in the view.

Because pos is a floating point coordinate, and the scroll bars operate on integer coordinates, the centering is only an approximation.

Note: If the item is close to or outside the border, it will be visible in the view, but not centered.

See also ensureVisible().

### QGraphicsView.centerOn (self, QGraphicsItem item)

This is an overloaded function.

This function is provided for convenience. It's equivalent to calling centerOn(QPointF(x, y)).

### QGraphicsView.centerOn (self, float ax, float ay)

This is an overloaded function.

Scrolls the contents of the viewport to ensure that item is centered in the view.

See also ensureVisible().

### QGraphicsView.contextMenuEvent (self, QContextMenuEvent event)

Reimplemented from QWidget.contextMenuEvent().

### QGraphicsView.dragEnterEvent (self, QDragEnterEvent event)

Reimplemented from QWidget.dragEnterEvent().

### QGraphicsView.dragLeaveEvent (self, QDragLeaveEvent event)

Reimplemented from QWidget.dragLeaveEvent().

### DragMode QGraphicsView.dragMode (self)

### QGraphicsView.dragMoveEvent (self, QDragMoveEvent event)

Reimplemented from QWidget.dragMoveEvent().

### QGraphicsView.drawBackground (self, QPainter painter, QRectF rect)

Draws the background of the scene using painter, before any items and the foreground are drawn. Reimplement this function to provide a custom background for this view.

If all you want is to define a color, texture or gradient for the background, you can call setBackgroundBrush() instead.

All painting is done in scene coordinates. rect is the exposed rectangle.

The default implementation fills rect using the view's backgroundBrush. If no such brush is defined (the default), the scene's drawBackground() function is called instead.

See also drawForeground() and QGraphicsScene.drawBackground().

### QGraphicsView.drawForeground (self, QPainter painter, QRectF rect)

Draws the foreground of the scene using painter, after the background and all items are drawn. Reimplement this function to provide a custom foreground for this view.

If all you want is to define a color, texture or gradient for the foreground, you can call setForegroundBrush() instead.

All painting is done in scene coordinates. rect is the exposed rectangle.

The default implementation fills rect using the view's foregroundBrush. If no such brush is defined (the default), the scene's drawForeground() function is called instead.

See also drawBackground() and QGraphicsScene.drawForeground().

### QGraphicsView.drawItems (self, QPainter painter, list-of-QGraphicsItem items, list-of-QStyleOptionGraphicsItem options)

### QGraphicsView.dropEvent (self, QDropEvent event)

Reimplemented from QWidget.dropEvent().

### QGraphicsView.ensureVisible (self, QRectF rect, int xMargin = 50, int yMargin = 50)

Scrolls the contents of the viewport so that the scene rectangle rect is visible, with margins specified in pixels by xmargin and ymargin. If the specified rect cannot be reached, the contents are scrolled to the nearest valid position. The default value for both margins is 50 pixels.

See also centerOn().

### QGraphicsView.ensureVisible (self, QGraphicsItem item, int xMargin = 50, int yMargin = 50)

This is an overloaded function.

This function is provided for convenience. It's equivalent to calling ensureVisible(QRectF(x, y, w, h), xmargin, ymargin).

### QGraphicsView.ensureVisible (self, float x, float y, float w, float h, int xMargin = 50, int yMargin = 50)

This is an overloaded function.

Scrolls the contents of the viewport so that the center of item item is visible, with margins specified in pixels by xmargin and ymargin. If the specified point cannot be reached, the contents are scrolled to the nearest valid position. The default value for both margins is 50 pixels.

See also centerOn().

### bool QGraphicsView.event (self, QEvent event)

Reimplemented from QObject.event().

### QGraphicsView.fitInView (self, QRectF rect, Qt.AspectRatioMode mode = Qt.IgnoreAspectRatio)

Scales the view matrix and scrolls the scroll bars to ensure that the scene rectangle rect fits inside the viewport. rect must be inside the scene rect; otherwise, fitInView() cannot guarantee that the whole rect is visible.

This function keeps the view's rotation, translation, or shear. The view is scaled according to aspectRatioMode. rect will be centered in the view if it does not fit tightly.

It's common to call fitInView() from inside a reimplementation of resizeEvent(), to ensure that the whole scene, or parts of the scene, scales automatically to fit the new size of the viewport as the view is resized. Note though, that calling fitInView() from inside resizeEvent() can lead to unwanted resize recursion, if the new transformation toggles the automatic state of the scrollbars. You can toggle the scrollbar policies to always on or always off to prevent this (see horizontalScrollBarPolicy() and verticalScrollBarPolicy()).

If rect is empty, or if the viewport is too small, this function will do nothing.

See also setTransform(), ensureVisible(), and centerOn().

### QGraphicsView.fitInView (self, QGraphicsItem item, Qt.AspectRatioMode mode = Qt.IgnoreAspectRatio)

This is an overloaded function.

This convenience function is equivalent to calling fitInView(QRectF(x, y, w, h), aspectRatioMode).

See also ensureVisible() and centerOn().

### QGraphicsView.fitInView (self, float x, float y, float w, float h, Qt.AspectRatioMode mode = Qt.IgnoreAspectRatio)

This is an overloaded function.

Ensures that item fits tightly inside the view, scaling the view according to aspectRatioMode.

See also ensureVisible() and centerOn().

### QGraphicsView.focusInEvent (self, QFocusEvent event)

Reimplemented from QWidget.focusInEvent().

### bool QGraphicsView.focusNextPrevChild (self, bool next)

Reimplemented from QWidget.focusNextPrevChild().

### QGraphicsView.focusOutEvent (self, QFocusEvent event)

Reimplemented from QWidget.focusOutEvent().

### QBrush QGraphicsView.foregroundBrush (self)

### QGraphicsView.inputMethodEvent (self, QInputMethodEvent event)

Reimplemented from QWidget.inputMethodEvent().

### QVariant QGraphicsView.inputMethodQuery (self, Qt.InputMethodQuery query)

Reimplemented from QWidget.inputMethodQuery().

### QGraphicsView.invalidateScene (self, QRectF rect = QRectF(), QGraphicsScene.SceneLayers layers = QGraphicsScene.AllLayers)

This method is also a Qt slot with the C++ signature `void invalidateScene(const QRectF& = QRectF(),QGraphicsScene::SceneLayers = QGraphicsScene.AllLayers)`.

Invalidates and schedules a redraw of layers inside rect. rect is in scene coordinates. Any cached content for layers inside rect is unconditionally invalidated and redrawn.

You can call this function to notify QGraphicsView of changes to the background or the foreground of the scene. It is commonly used for scenes with tile-based backgrounds to notify changes when QGraphicsView has enabled background caching.

Note that QGraphicsView currently supports background caching only (see QGraphicsView.CacheBackground). This function is equivalent to calling update() if any layer but QGraphicsScene.BackgroundLayer is passed.

See also QGraphicsScene.invalidate() and update().

### bool QGraphicsView.isInteractive (self)

### bool QGraphicsView.isTransformed (self)

Returns true if the view is transformed (i.e., a non-identity transform has been assigned, or the scrollbars are adjusted).

This function was introduced in Qt 4.6.

See also setTransform(), horizontalScrollBar(), and verticalScrollBar().

### QGraphicsItem QGraphicsView.itemAt (self, QPoint pos)

Returns the item at position pos, which is in viewport coordinates. If there are several items at this position, this function returns the topmost item.

Example:

     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.";
         }
     }

See also items() and Sorting.

### QGraphicsItem QGraphicsView.itemAt (self, int ax, int ay)

This is an overloaded function.

This function is provided for convenience. It's equivalent to calling itemAt(QPoint(x, y)).

### list-of-QGraphicsItem QGraphicsView.items (self)

Returns a list of all the items in the associated scene, in descending stacking order (i.e., the first item in the returned list is the uppermost item).

See also QGraphicsScene.items() and Sorting.

### list-of-QGraphicsItem QGraphicsView.items (self, QPoint pos)

Returns a list of all the items at the position pos in the view. The items are listed in descending stacking order (i.e., the first item in the list is the uppermost item, and the last item is the lowermost item). pos is in viewport coordinates.

This function is most commonly called from within mouse event handlers in a subclass in QGraphicsView. pos is in untransformed viewport coordinates, just like QMouseEvent.pos().

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

See also QGraphicsScene.items() and Sorting.

### list-of-QGraphicsItem QGraphicsView.items (self, int ax, int ay)

This function is provided for convenience. It's equivalent to calling items(QPoint(x, y)).

### list-of-QGraphicsItem QGraphicsView.items (self, int x, int y, int w, int h, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

This convenience function is equivalent to calling items(QRectF(x, y, w, h), mode).

This function was introduced in Qt 4.3.

### list-of-QGraphicsItem QGraphicsView.items (self, QRect rect, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

This is an overloaded function.

Returns a list of all the items that, depending on mode, are either contained by or intersect with rect. rect is in viewport coordinates.

The default value for mode is Qt.IntersectsItemShape; all items whose exact shape intersects with or is contained by rect are returned.

The items are sorted in descending stacking order (i.e., the first item in the returned list is the uppermost item).

See also itemAt(), items(), mapToScene(), and Sorting.

### list-of-QGraphicsItem QGraphicsView.items (self, QPolygon polygon, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

This is an overloaded function.

Returns a list of all the items that, depending on mode, are either contained by or intersect with polygon. polygon is in viewport coordinates.

The default value for mode is Qt.IntersectsItemShape; all items whose exact shape intersects with or is contained by polygon are returned.

The items are sorted by descending stacking order (i.e., the first item in the returned list is the uppermost item).

See also itemAt(), items(), mapToScene(), and Sorting.

### list-of-QGraphicsItem QGraphicsView.items (self, QPainterPath path, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

This is an overloaded function.

Returns a list of all the items that, depending on mode, are either contained by or intersect with path. path is in viewport coordinates.

The default value for mode is Qt.IntersectsItemShape; all items whose exact shape intersects with or is contained by path are returned.

See also itemAt(), items(), mapToScene(), and Sorting.

### QGraphicsView.keyPressEvent (self, QKeyEvent event)

Reimplemented from QWidget.keyPressEvent().

### QGraphicsView.keyReleaseEvent (self, QKeyEvent event)

Reimplemented from QWidget.keyReleaseEvent().

### QPoint QGraphicsView.mapFromScene (self, QPointF point)

Returns the scene coordinate point to viewport coordinates.

See also mapToScene().

### QPolygon QGraphicsView.mapFromScene (self, QRectF rect)

Returns the scene rectangle rect to a viewport coordinate polygon.

See also mapToScene().

### QPolygon QGraphicsView.mapFromScene (self, QPolygonF polygon)

Returns the scene coordinate polygon polygon to a viewport coordinate polygon.

See also mapToScene().

### QPainterPath QGraphicsView.mapFromScene (self, QPainterPath path)

Returns the scene coordinate painter path path to a viewport coordinate painter path.

See also mapToScene().

### QPoint QGraphicsView.mapFromScene (self, float ax, float ay)

This function is provided for convenience. It's equivalent to calling mapFromScene(QPointF(x, y)).

### QPolygon QGraphicsView.mapFromScene (self, float ax, float ay, float w, float h)

This function is provided for convenience. It's equivalent to calling mapFromScene(QRectF(x, y, w, h)).

### QPointF QGraphicsView.mapToScene (self, QPoint point)

Returns the viewport coordinate point mapped to scene coordinates.

Note: It can be useful to map the whole rectangle covered by the pixel at point instead of the point itself. To do this, you can call mapToScene(QRect(point, QSize(2, 2))).

See also mapFromScene().

### QPolygonF QGraphicsView.mapToScene (self, QRect rect)

Returns the viewport rectangle rect mapped to a scene coordinate polygon.

See also mapFromScene().

### QPolygonF QGraphicsView.mapToScene (self, QPolygon polygon)

Returns the viewport polygon polygon mapped to a scene coordinate polygon.

See also mapFromScene().

### QPainterPath QGraphicsView.mapToScene (self, QPainterPath path)

Returns the viewport painter path path mapped to a scene coordinate painter path.

See also mapFromScene().

### QPointF QGraphicsView.mapToScene (self, int ax, int ay)

This function is provided for convenience. It's equivalent to calling mapToScene(QPoint(x, y)).

### QPolygonF QGraphicsView.mapToScene (self, int ax, int ay, int w, int h)

This function is provided for convenience. It's equivalent to calling mapToScene(QRect(x, y, w, h)).

### QMatrix QGraphicsView.matrix (self)

Returns the current transformation matrix for the view. If no current transformation is set, the identity matrix is returned.

See also setMatrix(), transform(), rotate(), scale(), shear(), and translate().

### QGraphicsView.mouseDoubleClickEvent (self, QMouseEvent event)

Reimplemented from QWidget.mouseDoubleClickEvent().

### QGraphicsView.mouseMoveEvent (self, QMouseEvent event)

Reimplemented from QWidget.mouseMoveEvent().

### QGraphicsView.mousePressEvent (self, QMouseEvent event)

Reimplemented from QWidget.mousePressEvent().

### QGraphicsView.mouseReleaseEvent (self, QMouseEvent event)

Reimplemented from QWidget.mouseReleaseEvent().

### OptimizationFlags QGraphicsView.optimizationFlags (self)

### QGraphicsView.paintEvent (self, QPaintEvent event)

Reimplemented from QWidget.paintEvent().

### QGraphicsView.render (self, QPainter painter, QRectF target = QRectF(), QRect source = QRect(), Qt.AspectRatioMode mode = Qt.KeepAspectRatio)

Renders the source rect, which is in view coordinates, from the scene into target, which is in paint device coordinates, using painter. This function is useful for capturing the contents of the view onto a paint device, such as a QImage (e.g., to take a screenshot), or for printing to QPrinter. For example:

     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));

If source is a null rect, this function will use viewport()->rect() to determine what to draw. If target is a null rect, the full dimensions of painter's paint device (e.g., for a QPrinter, the page size) will be used.

The source rect contents will be transformed according to aspectRatioMode to fit into the target rect. By default, the aspect ratio is kept, and source is scaled to fit in target.

See also QGraphicsScene.render().

### QPainter.RenderHints QGraphicsView.renderHints (self)

### QGraphicsView.resetCachedContent (self)

Resets any cached content. Calling this function will clear QGraphicsView's cache. If the current cache mode is CacheNone, this function does nothing.

This function is called automatically for you when the backgroundBrush or QGraphicsScene.backgroundBrush properties change; you only need to call this function if you have reimplemented QGraphicsScene.drawBackground() or QGraphicsView.drawBackground() to draw a custom background, and need to trigger a full redraw.

See also cacheMode().

### QGraphicsView.resetMatrix (self)

Resets the view transformation matrix to the identity matrix.

See also resetTransform().

### QGraphicsView.resetTransform (self)

Resets the view transformation to the identity matrix.

See also transform() and setTransform().

### ViewportAnchor QGraphicsView.resizeAnchor (self)

### QGraphicsView.resizeEvent (self, QResizeEvent event)

Reimplemented from QWidget.resizeEvent().

### QGraphicsView.rotate (self, float angle)

Rotates the current view transformation angle degrees clockwise.

See also setTransform(), transform(), scale(), shear(), and translate().

### Qt.ItemSelectionMode QGraphicsView.rubberBandSelectionMode (self)

### QGraphicsView.scale (self, float sx, float sy)

Scales the current view transformation by (sx, sy).

See also setTransform(), transform(), rotate(), shear(), and translate().

### QGraphicsScene QGraphicsView.scene (self)

Returns a pointer to the scene that is currently visualized in the view. If no scene is currently visualized, 0 is returned.

See also setScene().

### QRectF QGraphicsView.sceneRect (self)

### QGraphicsView.scrollContentsBy (self, int dx, int dy)

Reimplemented from QAbstractScrollArea.scrollContentsBy().

### QGraphicsView.setAlignment (self, Qt.Alignment alignment)

### QGraphicsView.setBackgroundBrush (self, QBrush brush)

### QGraphicsView.setCacheMode (self, CacheMode mode)

### QGraphicsView.setDragMode (self, DragMode mode)

### QGraphicsView.setForegroundBrush (self, QBrush brush)

### QGraphicsView.setInteractive (self, bool allowed)

### QGraphicsView.setMatrix (self, QMatrix matrix, bool combine = False)

Sets the view's current transformation matrix to matrix.

If combine is true, then matrix is combined with the current matrix; otherwise, matrix replaces the current matrix. combine is false by default.

The transformation matrix tranforms the scene into view coordinates. Using the default transformation, provided by the identity matrix, one pixel in the view represents one unit in the scene (e.g., a 10x10 rectangular item is drawn using 10x10 pixels in the view). If a 2x2 scaling matrix is applied, the scene will be drawn in 1:2 (e.g., a 10x10 rectangular item is then drawn using 20x20 pixels in the view).

Example:

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

To simplify interation with items using a transformed view, QGraphicsView provides mapTo... and mapFrom... functions that can translate between scene and view coordinates. For example, you can call mapToScene() to map a view coordinate to a floating point scene coordinate, or mapFromScene() to map from floating point scene coordinates to view coordinates.

See also matrix(), setTransform(), rotate(), scale(), shear(), and translate().

### QGraphicsView.setOptimizationFlag (self, OptimizationFlag flag, bool enabled = True)

Enables flag if enabled is true; otherwise disables flag.

See also optimizationFlags.

### QGraphicsView.setOptimizationFlags (self, OptimizationFlags flags)

### QGraphicsView.setRenderHint (self, QPainter.RenderHint hint, bool on = True)

If enabled is true, the render hint hint is enabled; otherwise it is disabled.

See also renderHints.

### QGraphicsView.setRenderHints (self, QPainter.RenderHints hints)

### QGraphicsView.setResizeAnchor (self, ViewportAnchor anchor)

### QGraphicsView.setRubberBandSelectionMode (self, Qt.ItemSelectionMode mode)

### QGraphicsView.setScene (self, QGraphicsScene scene)

Sets the current scene to scene. If scene is already being viewed, this function does nothing.

When a scene is set on a view, the QGraphicsScene.changed() signal is automatically connected to this view's updateScene() slot, and the view's scroll bars are adjusted to fit the size of the scene.

See also scene().

### QGraphicsView.setSceneRect (self, QRectF rect)

### QGraphicsView.setSceneRect (self, float ax, float ay, float aw, float ah)

### QGraphicsView.setTransform (self, QTransform matrix, bool combine = False)

Sets the view's current transformation matrix to matrix.

If combine is true, then matrix is combined with the current matrix; otherwise, matrix replaces the current matrix. combine is false by default.

The transformation matrix tranforms the scene into view coordinates. Using the default transformation, provided by the identity matrix, one pixel in the view represents one unit in the scene (e.g., a 10x10 rectangular item is drawn using 10x10 pixels in the view). If a 2x2 scaling matrix is applied, the scene will be drawn in 1:2 (e.g., a 10x10 rectangular item is then drawn using 20x20 pixels in the view).

Example:

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

To simplify interation with items using a transformed view, QGraphicsView provides mapTo... and mapFrom... functions that can translate between scene and view coordinates. For example, you can call mapToScene() to map a view coordiate to a floating point scene coordinate, or mapFromScene() to map from floating point scene coordinates to view coordinates.

See also transform(), rotate(), scale(), shear(), and translate().

### QGraphicsView.setTransformationAnchor (self, ViewportAnchor anchor)

### QGraphicsView.setupViewport (self, QWidget widget)

This method is also a Qt slot with the C++ signature `void setupViewport(QWidget *)`.

This slot is called by QAbstractScrollArea after setViewport() has been called. Reimplement this function in a subclass of QGraphicsView to initialize the new viewport widget before it is used.

See also setViewport().

### QGraphicsView.setViewportUpdateMode (self, ViewportUpdateMode mode)

### QGraphicsView.shear (self, float sh, float sv)

Shears the current view transformation by (sh, sv).

See also setTransform(), transform(), rotate(), scale(), and translate().

### QGraphicsView.showEvent (self, QShowEvent event)

Reimplemented from QWidget.showEvent().

### QSize QGraphicsView.sizeHint (self)

Reimplemented from QWidget.sizeHint().

### QTransform QGraphicsView.transform (self)

Returns the current transformation matrix for the view. If no current transformation is set, the identity matrix is returned.

See also setTransform(), rotate(), scale(), shear(), and translate().

### ViewportAnchor QGraphicsView.transformationAnchor (self)

### QGraphicsView.translate (self, float dx, float dy)

Translates the current view transformation by (dx, dy).

See also setTransform(), transform(), rotate(), and shear().

### QGraphicsView.updateScene (self, list-of-QRectF rects)

This method is also a Qt slot with the C++ signature `void updateScene(const QList<QRectF>&)`.

Schedules an update of the scene rectangles rects.

See also QGraphicsScene.changed().

### QGraphicsView.updateSceneRect (self, QRectF rect)

This method is also a Qt slot with the C++ signature `void updateSceneRect(const QRectF&)`.

Notifies QGraphicsView that the scene's scene rect has changed. rect is the new scene rect. If the view already has an explicitly set scene rect, this function does nothing.

See also sceneRect and QGraphicsScene.sceneRectChanged().

### bool QGraphicsView.viewportEvent (self, QEvent event)

Reimplemented from QAbstractScrollArea.viewportEvent().

### QTransform QGraphicsView.viewportTransform (self)

Returns a matrix that maps viewport coordinates to scene coordinates.

See also mapToScene() and mapFromScene().

### ViewportUpdateMode QGraphicsView.viewportUpdateMode (self)

### QGraphicsView.wheelEvent (self, QWheelEvent event)

Reimplemented from QWidget.wheelEvent().