Auf dieser Seite

QDoubleSpinBox Class

Die Klasse „QDoubleSpinBox“ stellt ein Spinbox-Widget bereit, das Double-Werte akzeptiert. Mehr...

Header: #include <QDoubleSpinBox>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Erbt von: QAbstractSpinBox

Eigenschaften

Öffentliche Funktionen

QDoubleSpinBox(QWidget *parent = nullptr)
virtual ~QDoubleSpinBox()
QString cleanText() const
int decimals() const
double maximum() const
double minimum() const
QString prefix() const
void setDecimals(int prec)
void setMaximum(double max)
void setMinimum(double min)
void setPrefix(const QString &prefix)
void setRange(double minimum, double maximum)
void setSingleStep(double val)
void setStepType(QAbstractSpinBox::StepType stepType)
void setSuffix(const QString &suffix)
double singleStep() const
QAbstractSpinBox::StepType stepType() const
QString suffix() const
virtual QString textFromValue(double value) const
double value() const
virtual double valueFromText(const QString &text) const

Neu implementierte öffentliche Funktionen

virtual void fixup(QString &input) const override
virtual QValidator::State validate(QString &text, int &pos) const override

Öffentliche Slots

void setValue(double val)

Signale

void textChanged(const QString &text)
void valueChanged(double d)

Detaillierte Beschreibung

Spin-Box, die ein Doppel anzeigt

Mit QDoubleSpinBox kann der Benutzer einen Wert auswählen, indem er auf die Schaltflächen „Nach oben“ und „Nach unten“ klickt oder die Tasten „Auf“ bzw. „Ab“ auf der Tastatur drückt, um den aktuell angezeigten Wert zu erhöhen oder zu verringern. Der Benutzer kann den Wert auch manuell eingeben. Die Spinbox unterstützt Double-Werte, kann jedoch mithilfe von validate(), textFromValue() und valueFromText() auf die Verwendung verschiedener Zeichenketten erweitert werden.

Jedes Mal, wenn sich der Wert ändert, sendet die QDoubleSpinBox die Signale „ valueChanged()“ und „ textChanged()“ aus, wobei das erstere einen Double-Wert und das letztere einen „ QString “-Wert liefert. Das Signal „ textChanged()“ liefert den Wert sowohl mit „ prefix()“ als auch mit „ suffix()“. Der aktuelle Wert kann mit „ value()“ abgerufen und mit „ setValue()“ gesetzt werden.

Hinweis: QDoubleSpinBox rundet Zahlen, damit sie mit der aktuellen Genauigkeit angezeigt werden können. In einer QDoubleSpinBox, bei der die Dezimalstellen auf 2 gesetzt sind, führt der Aufruf von ` setValue(2.555)` dazu, dass ` value()` den Wert 2.56 zurückgibt.

Durch Klicken auf die Auf- und Ab-Schaltflächen oder durch Verwendung der Auf- und Ab-Pfeiltasten der Tastatur wird der aktuelle Wert in Schritten der Größe singleStep() erhöht oder verringert. Wenn Sie dieses Verhalten ändern möchten, können Sie die virtuelle Funktion ` stepBy()` neu implementieren. Der Minimal- und Maximalwert sowie die Schrittweite können über einen der Konstruktoren festgelegt und später mit ` setMinimum()`, ` setMaximum()` und ` setSingleStep()` geändert werden. Die Spinbox hat standardmäßig eine Genauigkeit von 2 Dezimalstellen, dies kann jedoch mit ` setDecimals()` geändert werden.

Die meisten Spinboxen sind gerichtet, aber QDoubleSpinBox kann auch als zirkuläre Spinbox fungieren, d. h., wenn der Bereich 0,0–99,9 beträgt und der aktuelle Wert 99,9 ist, ergibt ein Klick auf „Nach oben“ den Wert 0, sofern „ wrapping()“ auf „true“ gesetzt ist. Verwenden Sie ` setWrapping()` (), wenn Sie ein zirkuläres Verhalten wünschen.

Dem angezeigten Wert können beliebige Zeichenfolgen vorangestellt oder angehängt werden, die beispielsweise die Währung oder die Maßeinheit angeben. Siehe setPrefix() und setSuffix(). Der Text im Drehfeld wird mit text() abgerufen (einschließlich aller prefix() und suffix()), oder mit cleanText() (ohne prefix(), ohne suffix() und ohne führende oder nachgestellte Leerzeichen).

Häufig ist es wünschenswert, dem Benutzer zusätzlich zum Bereich der numerischen Werte eine spezielle (oftmals voreingestellte) Auswahlmöglichkeit anzubieten. Unter setSpecialValueText() erfahren Sie, wie dies mit QDoubleSpinBox umgesetzt werden kann.

Hinweis: Der angezeigte Wert der QDoubleSpinBox ist auf 18 Zeichen begrenzt, zusätzlich zu eventuellen Präfix- und Suffix-Inhalten. Diese Begrenzung dient dazu, die Double-Spin-Box auch bei extrem großen Werten nutzbar zu halten.

Siehe auch QSpinBox, QDateTimeEdit, QSlider und das Beispiel „Spin-Boxen“.

Dokumentation zu den Eigenschaften

[read-only] cleanText : QString

Diese Eigenschaft enthält den Text des Spin-Feldes ohne Präfixe, Suffixe sowie führende oder nachgestellte Leerzeichen.

Zugriffsfunktionen:

QString cleanText() const

Siehe auch „ text “, „ QDoubleSpinBox::prefix “ und „ QDoubleSpinBox::suffix “.

decimals : int

Diese Eigenschaft legt die Genauigkeit des Eingabefelds fest, angegeben in Dezimalstellen

Legt fest, wie viele Dezimalstellen die Spinbox zur Anzeige und Interpretation von Double-Werten verwendet.

Warnung: Der Maximalwert für „ decimals “ beträgt aufgrund der Einschränkungen des Double-Typs DBL_MAX_10_EXP + DBL_DIG (d. h. 323).

Hinweis: Der Maximalwert, der Minimalwert und der Wert können sich durch eine Änderung dieser Eigenschaft ändern.

Zugriffsfunktionen:

int decimals() const
void setDecimals(int prec)

maximum : double

Diese Eigenschaft enthält den Maximalwert des Spin-Feldes

Beim Festlegen dieser Eigenschaft wird der „ minimum “ (Mindestwert) bei Bedarf angepasst, um sicherzustellen, dass der Wertebereich gültig bleibt.

Der Standard-Maximalwert beträgt 99,99.

Hinweis: Der Maximalwert wird entsprechend der Eigenschaft „decimals“ gerundet.

Zugriffsfunktionen:

double maximum() const
void setMaximum(double max)

Siehe auch „ decimals “ und „ setRange()“.

minimum : double

Diese Eigenschaft enthält den Mindestwert des Spin-Feldes

Bei der Festlegung dieser Eigenschaft wird der „ maximum “ bei Bedarf angepasst, um sicherzustellen, dass der Wertebereich gültig bleibt.

Der Standard-Mindestwert ist 0,0.

Hinweis: Der Mindestwert wird entsprechend der Eigenschaft „Dezimalstellen“ gerundet.

Zugriffsfunktionen:

double minimum() const
void setMinimum(double min)

Siehe auch „ decimals“ , „ setRange()“ und „ specialValueText “.

prefix : QString

Diese Eigenschaft enthält das Präfix des Spin-Feldes

Das Präfix wird dem angezeigten Wert vorangestellt. Typischerweise wird es verwendet, um eine Maßeinheit oder ein Währungssymbol anzuzeigen. Beispiel:

spinbox->setPrefix("$");

Um die Anzeige des Präfixes zu deaktivieren, setzen Sie diese Eigenschaft auf eine leere Zeichenkette. Standardmäßig wird kein Präfix angezeigt. Das Präfix wird nicht angezeigt, wenn „ value()“ == „ minimum()“ ist und „ specialValueText()“ gesetzt ist.

Wenn kein Präfix festgelegt ist, gibt prefix() eine leere Zeichenfolge zurück.

Zugriffsfunktionen:

QString prefix() const
void setPrefix(const QString &prefix)

Siehe auch suffix(), setSuffix(), specialValueText() und setSpecialValueText().

singleStep : double

Diese Eigenschaft enthält den Schrittwert

Wenn der Benutzer den Wert des Drehfelds mithilfe der Pfeiltasten ändert, wird der Wert um den Wert von „singleStep“ erhöht bzw. verringert. Der Standardwert beträgt 1,0. Die Einstellung eines „singleStep“-Werts kleiner als 0 hat keine Auswirkung.

Zugriffsfunktionen:

double singleStep() const
void setSingleStep(double val)

stepType : StepType

Diese Eigenschaft enthält den Schritt-Typ.

Der Schritt-Typ kann ein Einzelschritt oder ein adaptiver Dezimalschritt sein.

Zugriffsfunktionen:

QAbstractSpinBox::StepType stepType() const
void setStepType(QAbstractSpinBox::StepType stepType)

suffix : QString

Diese Eigenschaft enthält das Suffix des Eingabefelds

Das Suffix wird an das Ende des angezeigten Werts angehängt. Typischerweise wird damit eine Maßeinheit oder ein Währungssymbol angezeigt. Beispiel:

spinbox->setSuffix(" km");

Um die Anzeige des Suffixes zu deaktivieren, setzen Sie diese Eigenschaft auf eine leere Zeichenkette. Standardmäßig wird kein Suffix angezeigt. Das Suffix wird für die Funktion „ minimum()“ nicht angezeigt, wenn „ specialValueText()“ gesetzt ist.

Wenn kein Suffix festgelegt ist, gibt suffix() eine leere Zeichenkette zurück.

Zugriffsfunktionen:

QString suffix() const
void setSuffix(const QString &suffix)

Siehe auch „ prefix()“, „ setPrefix()“, „ specialValueText()“ und „ setSpecialValueText()“.

value : double

Diese Eigenschaft enthält den Wert des Drehfelds

setValue() löst ein „ valueChanged()“-Signal aus, wenn sich der neue Wert vom alten unterscheidet. Die Eigenschaft „value“ verfügt über ein zweites Notifier-Signal, das das Präfix und das Suffix des Spin-Feldes enthält.

Hinweis: Der Wert wird gerundet, damit er mit der aktuellen Einstellung für Dezimalstellen angezeigt werden kann.

Zugriffsfunktionen:

double value() const
void setValue(double val)

Notifier-Signal:

void valueChanged(double d)

Siehe auch „ decimals “.

Dokumentation der Mitgliedsfunktionen

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

Erstellt ein Spin-Feld mit dem Mindestwert 0,0 und dem Höchstwert 99,99, einem Schrittwert von 1,0 und einer Genauigkeit von 2 Dezimalstellen. Der Wert ist anfänglich auf 0,00 gesetzt. Das Spin-Feld hat die angegebene URL parent.

Siehe auch setMinimum(), setMaximum() und setSingleStep().

[virtual noexcept] QDoubleSpinBox::~QDoubleSpinBox()

Destruktor.

[override virtual] void QDoubleSpinBox::fixup(QString &input) const

Implementiert neu: ` QAbstractSpinBox::fixup(QString &input) const`.

void QDoubleSpinBox::setRange(double minimum, double maximum)

Praktische Funktion zum Festlegen der Werte für „ minimum “ und „ maximum “ mit einem einzigen Funktionsaufruf.

Hinweis: Die Maximal- und Minimalwerte werden entsprechend der Eigenschaft „decimals“ gerundet.

setRange(minimum, maximum);

entspricht:

setMinimum(minimum);
setMaximum(maximum);

Siehe auch „ minimum “ und „ maximum “.

void QDoubleSpinBox::setStepType(QAbstractSpinBox::StepType stepType)

Legt den Schritt-Typ für das Eingabefeld auf „ stepType “ fest, d. h. „Einzelschritt“ oder „adaptiver Dezimalschritt“.

„Adaptiver Dezimalschritt“ bedeutet, dass die Schrittweite kontinuierlich auf eine Zehnerpotenz unterhalb des aktuellen Werts „ value “ angepasst wird. Wenn der Wert also 1100 beträgt, wird der Schritt auf 100 gesetzt, sodass eine Erhöhung um einen Schritt den Wert auf 1200 erhöht. Bei einem Wert von 1200 führt eine Erhöhung um einen Schritt zu 1300. Bei negativen Werten führt ein Schritt nach unten von -1100 zu -1200.

Dies gilt auch für beliebige Dezimalwerte: 0,041 wird durch einen Schritt auf 0,042 erhöht.

Die Schritt-Richtung wird berücksichtigt, um Randfälle zu behandeln, sodass ein Schritt nach unten von 100 den Wert auf 99 statt auf 90 setzt. Somit landet ein Schritt nach oben, gefolgt von einem Schritt nach unten – oder umgekehrt – immer wieder beim Ausgangswert; 99 -> 100 -> 99.

Wird diese Option aktiviert, ignoriert das Eingabefeld den Wert von „ singleStep “, obwohl dieser beibehalten wird, sodass „ singleStep “ wirksam wird, falls die adaptive Dezimalschrittweite später deaktiviert wird.

Hinweis: Setter -Funktion für die Eigenschaft „ stepType “.

Siehe auch stepType().

[signal] void QDoubleSpinBox::textChanged(const QString &text)

Dieses Signal wird immer dann ausgelöst, wenn der Text des Spin-Feldes geändert wird. Der neue Text wird über die Methoden ` prefix()` und ` suffix()` an ` text ` übergeben.

[virtual] QString QDoubleSpinBox::textFromValue(double value) const

Diese virtuelle Funktion wird vom Spin-Feld verwendet, wann immer es das angegebene „ value “ anzeigen muss. Die Standardimplementierung gibt eine Zeichenkette zurück, die „ value “ enthält, ausgedruckt mit „ QWidget::locale()“. „toString “ (value, u'f', decimals()) entfernt das Tausendertrennzeichen, sofern „ setGroupSeparatorShown()“ nicht gesetzt ist. Eigenimplementierungen können beliebige Werte zurückgeben.

Hinweis: ` QDoubleSpinBox ` ruft diese Funktion nicht für ` specialValueText()` auf, und weder ` prefix()` noch ` suffix()` sollten im Rückgabewert enthalten sein.

Wenn Sie diese Funktion neu implementieren, müssen Sie möglicherweise auch valueFromText() neu implementieren.

Siehe auch „ valueFromText()“ und „ QLocale::groupSeparator()“.

[override virtual] QValidator::State QDoubleSpinBox::validate(QString &text, int &pos) const

Implementiert erneut: ` QAbstractSpinBox::validate(QString &input, int &pos) const`.

[signal] void QDoubleSpinBox::valueChanged(double d)

Dieses Signal wird immer dann ausgelöst, wenn der Wert des Spin-Feldes geändert wird. Der neue Wert wird in „ d “ übergeben.

Hinweis: Notifier -Signal für die Eigenschaft „ value “.

[virtual] double QDoubleSpinBox::valueFromText(const QString &text) const

Diese virtuelle Funktion wird von der Spin-Box immer dann verwendet, wenn sie vom Benutzer eingegebene „ text “ als Wert interpretieren muss.

Unterklassen, die Werte aus Spin-Boxen auf nicht-numerische Weise anzeigen müssen, müssen diese Funktion neu implementieren.

Hinweis: ` QDoubleSpinBox ` behandelt ` specialValueText()` separat; diese Funktion befasst sich nur mit den anderen Werten.

Siehe auch ` textFromValue()` und ` validate()`.

© 2026 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.