QAbstractSlider Class

Die Klasse QAbstractSlider liefert einen Integer-Wert innerhalb eines Bereichs. Mehr...

Kopfzeile: #include <QAbstractSlider>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Vererbt: QWidget
Vererbt von:

QDial, QScrollBar, und QSlider

Öffentliche Typen

enum SliderAction { SliderNoAction, SliderSingleStepAdd, SliderSingleStepSub, SliderPageStepAdd, SliderPageStepSub, …, SliderMove }

Eigenschaften

Öffentliche Funktionen

QAbstractSlider(QWidget *parent = nullptr)
virtual ~QAbstractSlider()
bool hasTracking() const
bool invertedAppearance() const
bool invertedControls() const
bool isSliderDown() const
int maximum() const
int minimum() const
Qt::Orientation orientation() const
int pageStep() const
void setInvertedAppearance(bool)
void setInvertedControls(bool)
void setMaximum(int)
void setMinimum(int)
void setPageStep(int)
void setSingleStep(int)
void setSliderDown(bool)
void setSliderPosition(int)
void setTracking(bool enable)
int singleStep() const
int sliderPosition() const
void triggerAction(QAbstractSlider::SliderAction action)
int value() const

Öffentliche Slots

void setOrientation(Qt::Orientation)
void setRange(int min, int max)
void setValue(int)

Signale

void actionTriggered(int action)
void rangeChanged(int min, int max)
void sliderMoved(int value)
void sliderPressed()
void sliderReleased()
void valueChanged(int value)

Geschützte Typen

enum SliderChange { SliderRangeChange, SliderOrientationChange, SliderStepsChange, SliderValueChange }

Geschützte Funktionen

QAbstractSlider::SliderAction repeatAction() const
void setRepeatAction(QAbstractSlider::SliderAction action, int thresholdTime = 500, int repeatTime = 50)
virtual void sliderChange(QAbstractSlider::SliderChange change)

Reimplementierte geschützte Funktionen

virtual void changeEvent(QEvent *ev) override
virtual bool event(QEvent *e) override
virtual void keyPressEvent(QKeyEvent *ev) override
virtual void timerEvent(QTimerEvent *e) override
virtual void wheelEvent(QWheelEvent *e) override

Detaillierte Beschreibung

Die Klasse ist als gemeinsame Superklasse für Widgets wie QScrollBar, QSlider und QDial konzipiert.

Hier sind die wichtigsten Eigenschaften der Klasse:

  1. value: Die begrenzte Ganzzahl, die QAbstractSlider verwaltet.
  2. minimum: Der kleinstmögliche Wert.
  3. maximum: Der höchstmögliche Wert.
  4. singleStep: Der kleinere von zwei natürlichen Schritten, den ein abstrakter Schieberegler bietet und der normalerweise dem Drücken einer Pfeiltaste durch den Benutzer entspricht.
  5. pageStep: Der größere von zwei natürlichen Schritten, die ein abstrakter Schieberegler bietet, und entspricht in der Regel dem Drücken von PageUp oder PageDown durch den Benutzer.
  6. tracking: Ob die Schiebereglerverfolgung aktiviert ist.
  7. sliderPosition: Die aktuelle Position des Schiebereglers. Wenn tracking aktiviert ist (die Voreinstellung), ist dies identisch mit value.

Die Einheit (1) kann als dritte Schrittgröße betrachtet werden. setValue() erlaubt es, den aktuellen Wert auf eine beliebige ganze Zahl im erlaubten Bereich zu setzen, nicht nur minimum() + n * singleStep() für ganzzahlige Werte von n. Einige Widgets erlauben es dem Benutzer, überhaupt einen Wert zu setzen; andere bieten nur Vielfache von singleStep() oder pageStep().

QAbstractSlider gibt einen umfassenden Satz von Signalen aus:

SignalWird ausgegeben wenn
valueChanged()sich der Wert geändert hat. Die tracking bestimmt, ob dieses Signal während der Benutzerinteraktion ausgesendet wird.
sliderPressed()der Benutzer beginnt, den Schieberegler zu ziehen.
sliderMoved()der Benutzer zieht den Schieberegler.
sliderReleased()Der Benutzer lässt den Schieberegler los.
actionTriggered()eine Schieberegler-Aktion wurde ausgelöst.
rangeChanged()der Bereich hat sich geändert.

QAbstractSlider bietet eine virtuelle Funktion sliderChange(), die sich gut für die Aktualisierung der Bildschirmdarstellung von Schiebereglern eignet. Durch den Aufruf von triggerAction() lösen Unterklassen Slider-Aktionen aus. Zwei Hilfsfunktionen QStyle::sliderPositionFromValue() und QStyle::sliderValueFromPosition() helfen Unterklassen und Stilen dabei, Bildschirmkoordinaten auf logische Wertebereiche abzubilden.

Siehe auch QAbstractSpinBox, QSlider, QDial, QScrollBar, und Sliders Example.

Dokumentation der Mitgliedstypen

enum QAbstractSlider::SliderAction

KonstanteWert
QAbstractSlider::SliderNoAction0
QAbstractSlider::SliderSingleStepAdd1
QAbstractSlider::SliderSingleStepSub2
QAbstractSlider::SliderPageStepAdd3
QAbstractSlider::SliderPageStepSub4
QAbstractSlider::SliderToMinimum5
QAbstractSlider::SliderToMaximum6
QAbstractSlider::SliderMove7

enum QAbstractSlider::SliderChange

KonstanteWert
QAbstractSlider::SliderRangeChange0
QAbstractSlider::SliderOrientationChange1
QAbstractSlider::SliderStepsChange2
QAbstractSlider::SliderValueChange3

Eigenschaft Dokumentation

invertedAppearance : bool

Diese Eigenschaft legt fest, ob ein Schieberegler seine Werte invertiert anzeigt oder nicht.

Wenn diese Eigenschaft false lautet (Standardeinstellung), werden das Minimum und das Maximum in ihrer klassischen Position für das geerbte Widget angezeigt. Wenn der Wert true ist, erscheinen Minimum und Maximum an der entgegengesetzten Position.

Hinweis: Diese Eigenschaft ist am sinnvollsten für Schieberegler und Drehknöpfe. Bei Bildlaufleisten hängt der visuelle Effekt der Bildlaufleisten-Untersteuerelemente davon ab, ob die Stile das invertierte Erscheinungsbild verstehen oder nicht; die meisten Stile ignorieren diese Eigenschaft für Bildlaufleisten.

Zugriffsfunktionen:

bool invertedAppearance() const
void setInvertedAppearance(bool)

invertedControls : bool

Diese Eigenschaft legt fest, ob der Schieberegler seine Rad- und Tastenereignisse invertiert oder nicht.

Wenn diese Eigenschaft false ist, wird der Wert des Schiebereglers durch Scrollen mit dem Mausrad nach oben und durch Drücken von Tasten wie "Seite nach oben" in Richtung seines Maximums erhöht. Andernfalls wird durch Drücken der Taste "Seite nach oben" der Wert des Schiebereglers in Richtung seines Minimums verschoben.

Zugriffsfunktionen:

bool invertedControls() const
void setInvertedControls(bool)

maximum : int

Diese Eigenschaft enthält den Maximalwert des Schiebereglers

Beim Einstellen dieser Eigenschaft wird minimum gegebenenfalls angepasst, um sicherzustellen, dass der Bereich gültig bleibt. Auch der aktuelle Wert des Schiebereglers wird so angepasst, dass er innerhalb des neuen Bereichs liegt.

Zugriffsfunktionen:

int maximum() const
void setMaximum(int)

minimum : int

Diese Eigenschaft enthält den Mindestwert des Schiebereglers.

Beim Einstellen dieser Eigenschaft wird maximum bei Bedarf angepasst, um sicherzustellen, dass der Bereich gültig bleibt. Auch der aktuelle Wert des Schiebereglers wird so angepasst, dass er innerhalb des neuen Bereichs liegt.

Zugriffsfunktionen:

int minimum() const
void setMinimum(int)

orientation : Qt::Orientation

Diese Eigenschaft enthält die Ausrichtung des Schiebereglers

Die Ausrichtung muss Qt::Vertical (der Standard) oder Qt::Horizontal sein.

Zugriffsfunktionen:

Qt::Orientation orientation() const
void setOrientation(Qt::Orientation)

pageStep : int

Diese Eigenschaft enthält den Seitenschritt.

Der größere von zwei natürlichen Schritten, die ein abstrakter Schieberegler bietet, entspricht in der Regel dem Drücken von PageUp oder PageDown durch den Benutzer.

Zugriffsfunktionen:

int pageStep() const
void setPageStep(int)

Siehe auch singleStep.

singleStep : int

Diese Eigenschaft enthält den Einzelschritt.

Der kleinere von zwei natürlichen Schritten, die ein abstrakter Schieberegler bietet, und entspricht normalerweise dem Drücken einer Pfeiltaste durch den Benutzer.

Wenn die Eigenschaft während eines automatisch wiederholenden Tastenereignisses geändert wird, ist das Verhalten undefiniert.

Zugriffsfunktionen:

int singleStep() const
void setSingleStep(int)

Siehe auch pageStep.

sliderDown : bool

Diese Eigenschaft gibt an, ob der Schieberegler nach unten gedrückt ist.

Die Eigenschaft wird von Unterklassen gesetzt, um dem abstrakten Schieberegler mitzuteilen, ob tracking eine Wirkung hat oder nicht.

Das Ändern der Eigenschaft "Slider nach unten" löst die Signale sliderPressed() und sliderReleased() aus.

Zugriffsfunktionen:

bool isSliderDown() const
void setSliderDown(bool)

sliderPosition : int

Diese Eigenschaft enthält die aktuelle Position des Schiebereglers

Wenn tracking aktiviert ist (Standardeinstellung), ist dies identisch mit value.

Zugriffsfunktionen:

int sliderPosition() const
void setSliderPosition(int)

Benachrichtigungssignal:

void sliderMoved(int value)

tracking : bool

Diese Eigenschaft gibt an, ob die Schiebereglerverfolgung aktiviert ist

Wenn die Verfolgung aktiviert ist (Standardeinstellung), sendet der Schieberegler das Signal valueChanged(), während er gezogen wird. Ist die Verfolgung deaktiviert, sendet der Schieberegler das Signal valueChanged() nur, wenn der Benutzer den Schieberegler loslässt.

Zugriffsfunktionen:

bool hasTracking() const
void setTracking(bool enable)

Siehe auch sliderDown.

value : int

Diese Eigenschaft enthält den aktuellen Wert des Schiebereglers

Der Schieberegler erzwingt, dass der Wert innerhalb des zulässigen Bereichs liegt: minimum <= value <= maximum.

Eine Änderung des Wertes ändert auch die sliderPosition.

Zugriffsfunktionen:

int value() const
void setValue(int)

Benachrichtigungssignal:

void valueChanged(int value)

Dokumentation der Mitgliedsfunktionen

[explicit] QAbstractSlider::QAbstractSlider(QWidget *parent = nullptr)

Konstruiert einen abstrakten Schieberegler.

Das Argument parent wird an den Konstruktor QWidget gesendet.

Der Standardwert für minimum ist 0, für maximum 99, mit einer singleStep Größe von 1 und einer pageStep Größe von 10 und einer anfänglichen value von 0.

[virtual noexcept] QAbstractSlider::~QAbstractSlider()

Zerstört den Schieberegler.

[signal] void QAbstractSlider::actionTriggered(int action)

Dieses Signal wird ausgesendet, wenn die Schieberegler-Aktion action ausgelöst wird. Aktionen sind SliderSingleStepAdd, SliderSingleStepSub, SliderPageStepAdd, SliderPageStepSub, SliderToMinimum, SliderToMaximum, und SliderMove.

Wenn das Signal ausgegeben wird, wurde sliderPosition entsprechend der Aktion angepasst, aber value wurde noch nicht propagiert (d. h. das Signal valueChanged() wurde noch nicht ausgegeben), und die visuelle Anzeige wurde noch nicht aktualisiert. In Slots, die mit diesem Signal verbunden sind, können Sie daher jede Aktion sicher anpassen, indem Sie setSliderPosition() selbst aufrufen, basierend sowohl auf der Aktion als auch auf dem Wert des Schiebereglers.

Siehe auch triggerAction().

[override virtual protected] void QAbstractSlider::changeEvent(QEvent *ev)

Reimplements: QWidget::changeEvent(QEvent *Event).

[override virtual protected] bool QAbstractSlider::event(QEvent *e)

Reimplements: QWidget::event(QEvent *Event).

[override virtual protected] void QAbstractSlider::keyPressEvent(QKeyEvent *ev)

Reimplements: QWidget::keyPressEvent(QKeyEvent *event).

[signal] void QAbstractSlider::rangeChanged(int min, int max)

Dieses Signal wird ausgegeben, wenn sich der Bereich des Schiebereglers geändert hat, wobei min das neue Minimum und max das neue Maximum ist.

Siehe auch minimum und maximum.

[protected] QAbstractSlider::SliderAction QAbstractSlider::repeatAction() const

Gibt die aktuelle Wiederholungsaktion zurück.

Siehe auch setRepeatAction().

[slot] void QAbstractSlider::setRange(int min, int max)

Setzt das Minimum des Schiebereglers auf min und das Maximum auf max.

Wenn max kleiner als min ist, ist min der einzig zulässige Wert.

Siehe auch minimum und maximum.

[protected] void QAbstractSlider::setRepeatAction(QAbstractSlider::SliderAction action, int thresholdTime = 500, int repeatTime = 50)

Stellt die Aktion action so ein, dass sie nach einer anfänglichen Verzögerung von thresholdTime in Intervallen von repeatTime wiederholt ausgelöst wird.

Siehe auch triggerAction() und repeatAction().

[virtual protected] void QAbstractSlider::sliderChange(QAbstractSlider::SliderChange change)

Implementieren Sie diese virtuelle Funktion neu, um Schieberegleränderungen wie SliderRangeChange, SliderOrientationChange, SliderStepsChange oder SliderValueChange zu verfolgen. Die Standardimplementierung aktualisiert nur die Anzeige und ignoriert den Parameter change.

[signal] void QAbstractSlider::sliderMoved(int value)

Dieses Signal wird ausgesendet, wenn sliderDown wahr ist und der Schieberegler sich bewegt. Dies geschieht normalerweise, wenn der Benutzer den Schieberegler verschiebt. Die value ist die neue Position des Schiebereglers.

Dieses Signal wird auch ausgegeben, wenn das Tracking ausgeschaltet ist.

Hinweis: Benachrichtigungssignal für die Eigenschaft sliderPosition.

Siehe auch setTracking(), valueChanged(), isSliderDown(), sliderPressed(), und sliderReleased().

[signal] void QAbstractSlider::sliderPressed()

Dieses Signal wird ausgegeben, wenn der Benutzer den Schieberegler mit der Maus drückt, oder programmatisch, wenn setSliderDown(true) aufgerufen wird.

Siehe auch sliderReleased(), sliderMoved(), und isSliderDown().

[signal] void QAbstractSlider::sliderReleased()

Dieses Signal wird ausgegeben, wenn der Benutzer den Schieberegler mit der Maus loslässt, oder programmatisch, wenn setSliderDown(false) aufgerufen wird.

Siehe auch sliderPressed(), sliderMoved(), und sliderDown.

[override virtual protected] void QAbstractSlider::timerEvent(QTimerEvent *e)

Reimplements: QObject::timerEvent(QTimerEvent *event).

void QAbstractSlider::triggerAction(QAbstractSlider::SliderAction action)

Löst einen Schieberegler action aus. Mögliche Aktionen sind SliderSingleStepAdd, SliderSingleStepSub, SliderPageStepAdd, SliderPageStepSub, SliderToMinimum, SliderToMaximum, und SliderMove.

Siehe auch actionTriggered().

[signal] void QAbstractSlider::valueChanged(int value)

Dieses Signal wird ausgesendet, wenn sich der Schiebereglerwert geändert hat, mit dem neuen Schieberegler value als Argument.

Hinweis: Benachrichtigungssignal für die Eigenschaft value.

[override virtual protected] void QAbstractSlider::wheelEvent(QWheelEvent *e)

Reimplements: QWidget::wheelEvent(QWheelEvent *event).

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.