---
name: "QwtPanner"
section: "3"
platform: "linux"
package: "libqwt-doc"
version: "6.1.4-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/QwtPanner"
---

# QwtPanner(3)

QwtPanner provides panning of a widget.

## NAME

QwtPanner - **QwtPanner** provides panning of a widget.

## SYNOPSIS

`#include <qwt_panner.h>`

Inherits QWidget.

Inherited by **QwtPlotPanner**.

### Signals

void **panned** (int dx, int dy)\
 void **moved** (int dx, int dy)\

### Public Member Functions

**QwtPanner** (QWidget \*parent)\
 virtual **~QwtPanner** ()\
 Destructor.  void **setEnabled** (bool)\
 En/disable the panner.  bool **isEnabled** () const\
 void **setMouseButton** (Qt::MouseButton, Qt::KeyboardModifiers=Qt::NoModifier)\
 void **getMouseButton** (Qt::MouseButton &button, Qt::KeyboardModifiers &) const\
 Get mouse button and modifiers used for panning.  void **setAbortKey** (int key, Qt::KeyboardModifiers=Qt::NoModifier)\
 void **getAbortKey** (int &key, Qt::KeyboardModifiers &) const\
 Get the abort key and modifiers.  void **setCursor** (const QCursor &)\
 const QCursor **cursor** () const\
 void **setOrientations** (Qt::Orientations)\
 Qt::Orientations **orientations** () const\
 Return the orientation, where paning is enabled.  bool **isOrientationEnabled** (Qt::Orientation) const\
 virtual bool **eventFilter** (QObject \*, QEvent \*)\
 Event filter.

### Protected Member Functions

virtual void **widgetMousePressEvent** (QMouseEvent \*)\
 virtual void **widgetMouseReleaseEvent** (QMouseEvent \*)\
 virtual void **widgetMouseMoveEvent** (QMouseEvent \*)\
 virtual void **widgetKeyPressEvent** (QKeyEvent \*)\
 virtual void **widgetKeyReleaseEvent** (QKeyEvent \*)\
 virtual void **paintEvent** (QPaintEvent \*)\
 Paint event.  virtual QBitmap **contentsMask** () const\
 Calculate a mask for the contents of the panned widget.  virtual QPixmap **grab** () const\

## Detailed Description

**QwtPanner** provides panning of a widget.

**QwtPanner** grabs the contents of a widget, that can be dragged in all directions. The offset between the start and the end position is emitted by the panned signal.

**QwtPanner** grabs the content of the widget into a pixmap and moves the pixmap around, without initiating any repaint events for the widget. Areas, that are not part of content are not painted while panning. This makes panning fast enough for widgets, where repaints are too slow for mouse movements.

For widgets, where repaints are very fast it might be better to implement panning manually by mapping mouse events into paint events.

## Constructor & Destructor Documentation

### QwtPanner::QwtPanner (QWidget \* parent)

Creates an panner that is enabled for the left mouse button.

**Parameters:**

*parent* Parent widget to be panned

## Member Function Documentation

### QBitmap QwtPanner::contentsMask () const` [protected]`, ` [virtual]`

Calculate a mask for the contents of the panned widget. Sometimes only parts of the contents of a widget should be panned. F.e. for a widget with a styled background with rounded borders only the area inside of the border should be panned.

**Returns:**

An empty bitmap, indicating no mask

Reimplemented in **QwtPlotPanner**.

### const QCursor QwtPanner::cursor () const

**Returns:**

Cursor that is active while panning

**See also:**

**setCursor()**

### bool QwtPanner::eventFilter (QObject \* object, QEvent \* event)` [virtual]`

Event filter. When **isEnabled()** is true mouse events of the observed widget are filtered.

**Parameters:**

*object* Object to be filtered \
 *event* Event

**Returns:**

Always false, beside for paint events for the parent widget.

**See also:**

**widgetMousePressEvent()**, **widgetMouseReleaseEvent()**, **widgetMouseMoveEvent()**

### QPixmap QwtPanner::grab () const` [protected]`, ` [virtual]`

Grab the widget into a pixmap.

**Returns:**

Grabbed pixmap

Reimplemented in **QwtPlotPanner**.

### bool QwtPanner::isEnabled () const

**Returns:**

true when enabled, false otherwise

**See also:**

**setEnabled**, **eventFilter()**

### bool QwtPanner::isOrientationEnabled (Qt::Orientation o) const

**Returns:**

True if an orientation is enabled

**See also:**

**orientations()**, **setOrientations()**

### void QwtPanner::moved (int dx, int dy)` [signal]`

Signal emitted, while the widget moved, but panning is not finished.

**Parameters:**

*dx* Offset in horizontal direction \
 *dy* Offset in vertical direction

### void QwtPanner::paintEvent (QPaintEvent \* event)` [protected]`, ` [virtual]`

Paint event. Repaint the grabbed pixmap on its current position and fill the empty spaces by the background of the parent widget.

**Parameters:**

*event* Paint event

### void QwtPanner::panned (int dx, int dy)` [signal]`

Signal emitted, when panning is done

**Parameters:**

*dx* Offset in horizontal direction \
 *dy* Offset in vertical direction

### void QwtPanner::setAbortKey (int key, Qt::KeyboardModifiers modifiers = `Qt::NoModifier`)

Change the abort key The defaults are Qt::Key\_Escape and Qt::NoModifiers

**Parameters:**

*key* Key ( See Qt::Keycode ) \
 *modifiers* Keyboard modifiers

### void QwtPanner::setCursor (const QCursor & cursor)

Change the cursor, that is active while panning The default is the cursor of the parent widget.

**Parameters:**

*cursor* New cursor

**See also:**

**setCursor()**

### void QwtPanner::setEnabled (bool on)

En/disable the panner. When enabled is true an event filter is installed for the observed widget, otherwise the event filter is removed.

**Parameters:**

*on* true or false

**See also:**

**isEnabled()**, **eventFilter()**

### void QwtPanner::setMouseButton (Qt::MouseButton button, Qt::KeyboardModifiers modifiers = `Qt::NoModifier`)

Change the mouse button and modifiers used for panning The defaults are Qt::LeftButton and Qt::NoModifier

### void QwtPanner::setOrientations (Qt::Orientations o)

Set the orientations, where panning is enabled The default value is in both directions: Qt::Horizontal \| Qt::Vertical

/param o Orientation

### void QwtPanner::widgetKeyPressEvent (QKeyEvent \* keyEvent)` [protected]`, ` [virtual]`

Handle a key press event for the observed widget.

**Parameters:**

*keyEvent* Key event

**See also:**

**eventFilter()**, **widgetKeyReleaseEvent()**

### void QwtPanner::widgetKeyReleaseEvent (QKeyEvent \* keyEvent)` [protected]`, ` [virtual]`

Handle a key release event for the observed widget.

**Parameters:**

*keyEvent* Key event

**See also:**

**eventFilter()**, **widgetKeyReleaseEvent()**

### void QwtPanner::widgetMouseMoveEvent (QMouseEvent \* mouseEvent)` [protected]`, ` [virtual]`

Handle a mouse move event for the observed widget.

**Parameters:**

*mouseEvent* Mouse event

**See also:**

**eventFilter()**, **widgetMousePressEvent()**, **widgetMouseReleaseEvent()**

### void QwtPanner::widgetMousePressEvent (QMouseEvent \* mouseEvent)` [protected]`, ` [virtual]`

Handle a mouse press event for the observed widget.

**Parameters:**

*mouseEvent* Mouse event

**See also:**

**eventFilter()**, **widgetMouseReleaseEvent()**, **widgetMouseMoveEvent()**,

### void QwtPanner::widgetMouseReleaseEvent (QMouseEvent \* mouseEvent)` [protected]`, ` [virtual]`

Handle a mouse release event for the observed widget.

**Parameters:**

*mouseEvent* Mouse event

**See also:**

**eventFilter()**, **widgetMousePressEvent()**, **widgetMouseMoveEvent()**,

## Author

Generated automatically by Doxygen for Qwt User's Guide from the source code.
