QDoubleSpinBox Class
Die Klasse QDoubleSpinBox stellt ein Spin-Box-Widget bereit, das Doubles aufnehmen kann. Mehr...
Kopfzeile: | #include <QDoubleSpinBox> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Vererbt: | 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 |
Reimplementierte ö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
QDoubleSpinBox ermöglicht es dem Benutzer, einen Wert auszuwählen, indem er auf die Aufwärts- und Abwärts-Schaltflächen klickt oder die Tasten Up oder Down auf der Tastatur drückt, um den aktuell angezeigten Wert zu erhöhen oder zu verringern. Der Benutzer kann den Wert auch manuell eintippen. Das Drehfeld unterstützt doppelte Werte, kann aber mit validate(), textFromValue() und valueFromText() erweitert werden, um verschiedene Zeichenketten zu verwenden.
Jedes Mal, wenn sich der Wert ändert, gibt QDoubleSpinBox die Signale valueChanged() und textChanged() aus, wobei ersteres ein Double und letzteres ein QString liefert. Das Signal textChanged() liefert den Wert mit prefix() und suffix(). Der aktuelle Wert kann mit value() abgefragt und mit setValue() gesetzt werden.
Hinweis: QDoubleSpinBox rundet Zahlen, damit sie mit der aktuellen Genauigkeit angezeigt werden können. In einer QDoubleSpinBox mit Dezimalstellen, die auf 2 gesetzt sind, wird der Aufruf von setValue(2.555) dazu führen, dass value() 2.56 zurückgibt.
Wenn Sie auf die Auf- und Abwärts-Schaltflächen klicken oder die Auf- und Abwärts-Pfeile der Tastatur benutzen, 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 mit einem der Konstruktoren festgelegt und später mit setMinimum(), setMaximum() und setSingleStep() geändert werden. Die Spinbox hat eine Standardgenauigkeit von 2 Dezimalstellen, die jedoch mit setDecimals() geändert werden kann.
Die meisten Spinboxen sind richtungsabhängig, aber QDoubleSpinBox kann auch als kreisförmige Spinbox arbeiten, d.h. wenn der Bereich 0.0-99.9 ist und der aktuelle Wert 99.9 ist, wird ein Klick auf "nach oben" 0 ergeben, wenn wrapping() auf true gesetzt ist. Verwenden Sie setWrapping(), wenn Sie ein kreisförmiges Verhalten wünschen.
Dem angezeigten Wert können beliebige Zeichenfolgen vorangestellt und angehängt werden, die z. B. die Währung oder die Maßeinheit angeben. Siehe setPrefix() und setSuffix(). Der Text in der Spin-Box wird mit text() (einschließlich prefix() und suffix()) oder mit cleanText() (ohne prefix(), suffix() und ohne führende oder nachfolgende Leerzeichen) abgerufen.
Oft ist es wünschenswert, dem Benutzer zusätzlich zum Bereich der numerischen Werte eine spezielle (oft voreingestellte) Auswahlmöglichkeit zu geben. Siehe setSpecialValueText(), um zu erfahren, wie man dies mit QDoubleSpinBox erreicht.
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 DoubleSpinBox auch bei extrem großen Werten benutzbar zu halten.
Siehe auch QSpinBox, QDateTimeEdit, QSlider, und Spin Boxes Example.
Dokumentation der Eigenschaft
[read-only]
cleanText : const QString
Diese Eigenschaft enthält den Text des Drehkastens ohne Präfix, Suffix oder führende oder nachfolgende Leerzeichen.
Zugriffsfunktionen:
QString | cleanText() const |
Siehe auch text, QDoubleSpinBox::prefix, und QDoubleSpinBox::suffix.
decimals : int
Diese Eigenschaft gibt die Genauigkeit der Spinbox in Dezimalstellen an
Legt fest, wie viele Dezimalstellen die Spinbox für die Anzeige und Interpretation von Doppelwerten verwendet.
Achtung! Der Maximalwert für decimals ist DBL_MAX_10_EXP + DBL_DIG (d.h. 323) aufgrund der Einschränkungen des Doppeltyps.
Hinweis: Das Maximum, das Minimum und der Wert können sich durch die Änderung dieser Eigenschaft ändern.
Zugriffsfunktionen:
int | decimals() const |
void | setDecimals(int prec) |
maximum : double
Diese Eigenschaft enthält den Maximalwert der Spinbox
Beim Einstellen dieser Eigenschaft wird minimum gegebenenfalls angepasst, um sicherzustellen, dass der Bereich gültig bleibt.
Der Standardhöchstwert ist 99,99.
Hinweis: Der Maximalwert wird gerundet, damit er mit der Dezimaleigenschaft übereinstimmt.
Zugriffsfunktionen:
double | maximum() const |
void | setMaximum(double max) |
Siehe auch decimals und setRange().
minimum : double
Diese Eigenschaft enthält den Mindestwert der Spin-Box
Beim Einstellen dieser Eigenschaft wird maximum gegebenenfalls angepasst, um sicherzustellen, dass der Bereich gültig bleibt.
Der Standard-Mindestwert ist 0,0.
Hinweis: Der Mindestwert wird gerundet, damit er mit der Dezimaleigenschaft übereinstimmt.
Zugriffsfunktionen:
double | minimum() const |
void | setMinimum(double min) |
Siehe auch decimals, setRange(), und specialValueText.
prefix : QString
Diese Eigenschaft enthält das Präfix der Spinbox
Das Präfix wird dem Anfang des angezeigten Wertes vorangestellt. Typischerweise wird es verwendet, um eine Maßeinheit oder ein Währungssymbol anzuzeigen. Ein Beispiel:
spinbox->setPrefix("$");
Um die Anzeige des Präfixes zu deaktivieren, setzen Sie diese Eigenschaft auf eine leere Zeichenfolge. Die Standardeinstellung ist kein Präfix. Das Präfix wird nicht angezeigt, wenn value() == minimum() und specialValueText() eingestellt ist.
Wenn kein Präfix gesetzt ist, gibt prefix() eine leere Zeichenkette 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 die Pfeile verwendet, um den Wert des Drehkastens zu ändern, wird der Wert um den Betrag von singleStep erhöht/verringert. Der Standardwert ist 1.0. Die Einstellung eines singleStep-Wertes von weniger als 0 bewirkt nichts.
Zugriffsfunktionen:
double | singleStep() const |
void | setSingleStep(double val) |
stepType : StepType
Diese Eigenschaft enthält den Stufentyp.
Die Schrittart kann Einzelschritt oder adaptiver Dezimalschritt sein.
Zugriffsfunktionen:
QAbstractSpinBox::StepType | stepType() const |
void | setStepType(QAbstractSpinBox::StepType stepType) |
suffix : QString
Diese Eigenschaft enthält das Suffix der Spinbox
Das Suffix wird an das Ende des angezeigten Wertes angehängt. Typischerweise wird es verwendet, um eine Maßeinheit oder ein Währungssymbol anzuzeigen. Ein Beispiel:
spinbox->setSuffix(" km");
Um die Anzeige des Suffixes zu deaktivieren, setzen Sie diese Eigenschaft auf eine leere Zeichenfolge. Die Standardeinstellung ist kein Suffix. Das Suffix wird für minimum() nicht angezeigt, wenn specialValueText() eingestellt ist.
Wenn kein Suffix gesetzt 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 Drehkastens
setValue() gibt valueChanged() aus, wenn sich der neue Wert vom alten unterscheidet. Die Eigenschaft value hat ein zweites Meldesignal, das das Präfix und Suffix der Spinbox enthält.
Hinweis: Der Wert wird gerundet, damit er mit der aktuellen Einstellung der Dezimalstellen angezeigt werden kann.
Zugriffsfunktionen:
double | value() const |
void | setValue(double val) |
Melder-Signal:
void | valueChanged(double d) |
Siehe auch decimals.
Dokumentation der Mitgliedsfunktionen
[explicit]
QDoubleSpinBox::QDoubleSpinBox(QWidget *parent = nullptr)
Konstruiert einen Drehkasten mit 0,0 als Minimalwert und 99,99 als Maximalwert, einem Schrittwert von 1,0 und einer Genauigkeit von 2 Dezimalstellen. Der Wert wird zunächst auf 0,00 gesetzt. Die Spinbox hat die angegebene parent.
Siehe auch setMinimum(), setMaximum(), und setSingleStep().
[virtual noexcept]
QDoubleSpinBox::~QDoubleSpinBox()
Zerstörer.
[override virtual]
void QDoubleSpinBox::fixup(QString &input) const
Reimplements: QAbstractSpinBox::fixup(QString &input) const.
void QDoubleSpinBox::setRange(double minimum, double maximum)
Convenience-Funktion zum Festlegen der Werte minimum und maximum mit einem einzigen Funktionsaufruf.
Hinweis: Die Maximal- und Minimalwerte werden gerundet, um der Dezimaleigenschaft zu entsprechen.
setRange(minimum, maximum);
ist äquivalent zu:
setMinimum(minimum); setMaximum(maximum);
Siehe auch minimum und maximum.
void QDoubleSpinBox::setStepType(QAbstractSpinBox::StepType stepType)
Stellt den Schritttyp für den Drehkasten auf stepType ein, d. h. Einzelschritt oder adaptiver Dezimalschritt.
Adaptiver Dezimalschritt bedeutet, dass die Schrittweite kontinuierlich um eine Zehnerpotenz unter dem aktuellen value angepasst wird. Wenn der Wert also 1100 beträgt, ist die Schrittweite auf 100 eingestellt, so dass eine einmalige Erhöhung den Wert auf 1200 erhöht. Bei einem Wert von 1200 erhöht sich die Schrittweite auf 1300. Bei negativen Werten führt ein Schritt nach unten von -1100 zu -1200.
Es funktioniert auch für beliebige Dezimalwerte, 0,041 wird durch einmaliges Steppen auf 0,042 erhöht.
Die Schrittrichtung wird berücksichtigt, um Kantenfälle zu behandeln, so dass ein Schritt von 100 nach unten den Wert auf 99 statt auf 90 bringt. Ein Schritt nach oben gefolgt von einem Schritt nach unten - oder umgekehrt - landet also immer auf dem Ausgangswert; 99 -> 100 -> 99.
Wird diese Eigenschaft gesetzt, ignoriert die Spin-Box den Wert von singleStep, obwohl er erhalten bleibt, so dass singleStep wirksam wird, wenn der adaptive Dezimalschritt 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 ausgegeben, wenn der Text der Spinbox geändert wird. Der neue Text wird in text mit prefix() und suffix() übergeben.
[virtual]
QString QDoubleSpinBox::textFromValue(double value) const
Diese virtuelle Funktion wird von der Spin-Box immer dann verwendet, wenn sie die angegebene value anzeigen muss. Die Standardimplementierung gibt eine Zeichenkette zurück, die value enthält und mit QWidget::locale() gedruckt wird.toString(value, u'f'
, decimals()) und entfernt das Tausendertrennzeichen, sofern nicht setGroupSeparatorShown() gesetzt ist. Reimplementierungen können alles 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 dies 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
Reimplements: QAbstractSpinBox::validate(QString &input, int &pos) const.
[signal]
void QDoubleSpinBox::valueChanged(double d)
Dieses Signal wird immer dann ausgegeben, wenn der Wert der Spin-Box geändert wird. Der neue Wert wird in d übergeben.
Hinweis: Benachrichtigungssignal für die Eigenschaft value.
[virtual]
double QDoubleSpinBox::valueFromText(const QString &text) const
Diese virtuelle Funktion wird vom Drehkasten immer dann verwendet, wenn er die vom Benutzer eingegebene Adresse text als Wert interpretieren muss.
Unterklassen, die Spin-Box-Werte auf eine 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().
© 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.