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

# QwtAbstractSlider(3)

An abstract base class for slider widgets with a scale.

## NAME

QwtAbstractSlider - An abstract base class for slider widgets with a scale.

## SYNOPSIS

`#include <qwt_abstract_slider.h>`

Inherits **QwtAbstractScale**.

Inherited by **QwtDial**, **QwtKnob**, and **QwtSlider**.

### Public Slots

void **setValue** (double **value**)\

### Signals

void **valueChanged** (double **value**)\
 Notify a change of value.  void **sliderPressed** ()\
 void **sliderReleased** ()\
 void **sliderMoved** (double **value**)\

### Public Member Functions

**QwtAbstractSlider** (QWidget \*parent=NULL)\
 Constructor.  virtual **~QwtAbstractSlider** ()\
 Destructor.  void **setValid** (bool)\
 bool **isValid** () const\
 double **value** () const\
 Returns the current value.  void **setWrapping** (bool)\
 bool **wrapping** () const\
 void **setTotalSteps** (uint)\
 Set the number of steps.  uint **totalSteps** () const\
 void **setSingleSteps** (uint)\
 Set the number of steps for a single increment.  uint **singleSteps** () const\
 void **setPageSteps** (uint)\
 Set the number of steps for a page increment.  uint **pageSteps** () const\
 void **setStepAlignment** (bool)\
 Enable step alignment.  bool **stepAlignment** () const\
 void **setTracking** (bool)\
 Enables or disables tracking.  bool **isTracking** () const\
 void **setReadOnly** (bool)\
 bool **isReadOnly** () const\
 void **setInvertedControls** (bool)\
 bool **invertedControls** () const\

### Protected Member Functions

virtual void **mousePressEvent** (QMouseEvent \*)\
 virtual void **mouseReleaseEvent** (QMouseEvent \*)\
 virtual void **mouseMoveEvent** (QMouseEvent \*)\
 virtual void **keyPressEvent** (QKeyEvent \*)\
 virtual void **wheelEvent** (QWheelEvent \*)\
 virtual bool **isScrollPosition** (const QPoint &pos) const =0\
 Determine what to do when the user presses a mouse button.  virtual double **scrolledTo** (const QPoint &pos) const =0\
 Determine the value for a new position of the movable part of the slider.  void **incrementValue** (int stepCount)\
 virtual void **scaleChange** ()\
 virtual void **sliderChange** ()\
 Calling update()  double **incrementedValue** (double **value**, int stepCount) const\

## Detailed Description

An abstract base class for slider widgets with a scale.

A slider widget displays a value according to a scale. The class is designed as a common super class for widgets like **QwtKnob**, **QwtDial** and **QwtSlider**.

When the slider is nor readOnly() its value can be modified by keyboard, mouse and wheel inputs.

The range of the slider is divided into a number of steps from which the value increments according to user inputs depend. Only for linear scales the number of steps correspond with a fixed step size.

## Constructor & Destructor Documentation

### QwtAbstractSlider::QwtAbstractSlider (QWidget \* parent = `NULL`)` [explicit]`

Constructor. The scale is initialized to \[0.0, 100.0\], the number of steps is set to 100 with 1 and 10 and single an page step sizes. Step alignment is enabled.

The initial value is invalid.

**Parameters:**

*parent* Parent widget

## Member Function Documentation

### double QwtAbstractSlider::incrementedValue (double value, int stepCount) const` [protected]`

Increment a value

**Parameters:**

*value* Value \
 *stepCount* Number of steps

**Returns:**

Incremented value

### void QwtAbstractSlider::incrementValue (int stepCount)` [protected]`

Increment the slider

The step size depends on the number of **totalSteps()**

**Parameters:**

*stepCount* Number of steps

**See also:**

**setTotalSteps()**, **incrementedValue()**

### bool QwtAbstractSlider::invertedControls () const

**Returns:**

True, when the controls are inverted

**See also:**

**setInvertedControls()**

### bool QwtAbstractSlider::isReadOnly () const

In read only mode the slider can't be controlled by mouse or keyboard.

**Returns:**

true if read only

**See also:**

**setReadOnly()**

### virtual bool QwtAbstractSlider::isScrollPosition (const QPoint & pos) const` [protected]`, ` [pure virtual]`

Determine what to do when the user presses a mouse button.

**Parameters:**

*pos* Mouse position

**Return values:**

*True,when* pos is a valid scroll position

**See also:**

**scrolledTo()**

Implemented in **QwtKnob**, **QwtDial**, and **QwtSlider**.

### bool QwtAbstractSlider::isTracking () const

**Returns:**

True, when tracking has been enabled

**See also:**

**setTracking()**

### bool QwtAbstractSlider::isValid () const

**Returns:**

True, when the value is invalid

### void QwtAbstractSlider::keyPressEvent (QKeyEvent \* event)` [protected]`, ` [virtual]`

Handles key events

**QwtAbstractSlider** handles the following keys:

- •

  Qt::Key\_Left\
  \
    Add/Subtract **singleSteps()** in direction to **lowerBound()**;

- •

  Qt::Key\_Right\
  \
    Add/Subtract **singleSteps()** in direction to **upperBound()**;

- •

  Qt::Key\_Down\
  \
    Subtract **singleSteps()**, when **invertedControls()** is false

- •

  Qt::Key\_Up\
  \
    Add **singleSteps()**, when **invertedControls()** is false

- •

  Qt::Key\_PageDown\
  \
    Subtract **pageSteps()**, when **invertedControls()** is false

- •

  Qt::Key\_PageUp\
  \
    Add **pageSteps()**, when **invertedControls()** is false

- •

  Qt::Key\_Home\
  \
    Set the value to the **minimum()**

- •

  Qt::Key\_End\
  \
    Set the value to the **maximum()**

**Parameters:**

*event* Key event

**See also:**

**isReadOnly()**

Reimplemented in **QwtCompass**.

### void QwtAbstractSlider::mouseMoveEvent (QMouseEvent \* event)` [protected]`, ` [virtual]`

Mouse Move Event handler

**Parameters:**

*event* Mouse event

### void QwtAbstractSlider::mousePressEvent (QMouseEvent \* event)` [protected]`, ` [virtual]`

Mouse press event handler

**Parameters:**

*event* Mouse event

Reimplemented in **QwtSlider**.

### void QwtAbstractSlider::mouseReleaseEvent (QMouseEvent \* event)` [protected]`, ` [virtual]`

Mouse Release Event handler

**Parameters:**

*event* Mouse event

Reimplemented in **QwtSlider**.

### uint QwtAbstractSlider::pageSteps () const

**Returns:**

Number of steps

**See also:**

**setPageSteps()**, **totalSteps()**, **singleSteps()**

### void QwtAbstractSlider::scaleChange ()` [protected]`, ` [virtual]`

Update the slider according to modifications of the scale

Reimplemented from **QwtAbstractScale**.

Reimplemented in **QwtDial**, and **QwtSlider**.

### virtual double QwtAbstractSlider::scrolledTo (const QPoint & pos) const` [protected]`, ` [pure virtual]`

Determine the value for a new position of the movable part of the slider.

**Parameters:**

*pos* Mouse position

**Returns:**

Value for the mouse position

**See also:**

**isScrollPosition()**

Implemented in **QwtKnob**, **QwtDial**, and **QwtSlider**.

### void QwtAbstractSlider::setInvertedControls (bool on)

Invert wheel and key events

Usually scrolling the mouse wheel 'up' and using keys like page up will increase the slider's value towards its maximum. When **invertedControls()** is enabled the value is scrolled towards its minimum.

Inverting the controls might be f.e. useful for a vertical slider with an inverted scale ( decreasing from top to bottom ).

**Parameters:**

*on* Invert controls, when true

**See also:**

**invertedControls()**, keyEvent(), **wheelEvent()**

### void QwtAbstractSlider::setPageSteps (uint stepCount)

Set the number of steps for a page increment. The range of the slider is divided into a number of steps from which the value increments according to user inputs depend.

**Parameters:**

*stepCount* Number of steps

**See also:**

**pageSteps()**, **setTotalSteps()**, **setSingleSteps()**

### void QwtAbstractSlider::setReadOnly (bool on)

En/Disable read only mode

In read only mode the slider can't be controlled by mouse or keyboard.

**Parameters:**

*on* Enables in case of true

**See also:**

**isReadOnly()**

**Warning:**

The focus policy is set to Qt::StrongFocus or Qt::NoFocus

### void QwtAbstractSlider::setSingleSteps (uint stepCount)

Set the number of steps for a single increment. The range of the slider is divided into a number of steps from which the value increments according to user inputs depend.

**Parameters:**

*stepCount* Number of steps

**See also:**

**singleSteps()**, **setTotalSteps()**, **setPageSteps()**

### void QwtAbstractSlider::setStepAlignment (bool on)

Enable step alignment. When step alignment is enabled values resulting from slider movements are aligned to the step size.

**Parameters:**

*on* Enable step alignment when true

**See also:**

**stepAlignment()**

### void QwtAbstractSlider::setTotalSteps (uint stepCount)

Set the number of steps. The range of the slider is divided into a number of steps from which the value increments according to user inputs depend.

The default setting is 100.

**Parameters:**

*stepCount* Number of steps

**See also:**

**totalSteps()**, **setSingleSteps()**, **setPageSteps()**

### void QwtAbstractSlider::setTracking (bool on)

Enables or disables tracking. If tracking is enabled, the slider emits the **valueChanged()** signal while the movable part of the slider is being dragged. If tracking is disabled, the slider emits the **valueChanged()** signal only when the user releases the slider.

Tracking is enabled by default.

**Parameters:**

*on* `true` (enable) or `false` (disable) tracking.

**See also:**

**isTracking()**, **sliderMoved()**

### void QwtAbstractSlider::setValid (bool on)

Set the value to be valid/invalid

**Parameters:**

*on* When true, the value is invalidated

**See also:**

**setValue()**

### void QwtAbstractSlider::setValue (double value)` [slot]`

Set the slider to the specified value

**Parameters:**

*value* New value

**See also:**

**setValid()**, **sliderChange()**, **valueChanged()**

### void QwtAbstractSlider::setWrapping (bool on)

If wrapping is true stepping up from **upperBound()** value will take you to the **minimum()** value and vice versa.

**Parameters:**

*on* En/Disable wrapping

**See also:**

**wrapping()**

### uint QwtAbstractSlider::singleSteps () const

**Returns:**

Number of steps

**See also:**

**setSingleSteps()**, **totalSteps()**, **pageSteps()**

### void QwtAbstractSlider::sliderMoved (double value)` [signal]`

This signal is emitted when the user moves the slider with the mouse.

**Parameters:**

*value* New value

**See also:**

**valueChanged()**

### void QwtAbstractSlider::sliderPressed ()` [signal]`

This signal is emitted when the user presses the movable part of the slider.

### void QwtAbstractSlider::sliderReleased ()` [signal]`

This signal is emitted when the user releases the movable part of the slider.

### bool QwtAbstractSlider::stepAlignment () const

**Returns:**

True, when step alignment is enabled

**See also:**

**setStepAlignment()**

### uint QwtAbstractSlider::totalSteps () const

**Returns:**

Number of steps

**See also:**

**setTotalSteps()**, **singleSteps()**, **pageSteps()**

### void QwtAbstractSlider::valueChanged (double value)` [signal]`

Notify a change of value. When tracking is enabled (default setting), this signal will be emitted every time the value changes.

**Parameters:**

*value* New value

**See also:**

**setTracking()**, **sliderMoved()**

### void QwtAbstractSlider::wheelEvent (QWheelEvent \* event)` [protected]`, ` [virtual]`

Wheel Event handler

In/decreases the value by s number of steps. The direction depends on the **invertedControls()** property.

When the control or shift modifier is pressed the wheel delta ( divided by 120 ) is mapped to an increment according to **pageSteps()**. Otherwise it is mapped to **singleSteps()**.

**Parameters:**

*event* Wheel event

Reimplemented in **QwtDial**.

### bool QwtAbstractSlider::wrapping () const

**Returns:**

True, when wrapping is set

**See also:**

**setWrapping()**

## Author

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