Auf dieser Seite

SpinBox QML Type

Ermöglicht dem Benutzer die Auswahl aus einer Reihe von voreingestellten Werten. Mehr...

Import Statement: import QtQuick.Controls
Inherits:

Control

Eigenschaften

Signale

Methoden

Detaillierte Beschreibung

Drehfeld mit numerischem Wert und Schaltflächen

Die SpinBox ermöglicht es dem Benutzer, einen ganzzahligen Wert auszuwählen, indem er auf die Auf- oder Abwärtstasten klickt oder auf der Tastatur nach oben oder unten drückt. Optional kann die SpinBox auch auf editable eingestellt werden, so dass der Benutzer einen Textwert in das Eingabefeld eingeben kann.

Standardmäßig liefert die SpinBox diskrete Werte im Bereich von [0-99] mit einem stepSize von 1.

SpinBox {
    value: 50
}

Benutzerdefinierte Werte

Spinnbox, die Textwerte anzeigt

Auch wenn SpinBox mit ganzzahligen Werten arbeitet, kann es so angepasst werden, dass es beliebige Eingabewerte akzeptiert. Das folgende Snippet zeigt, wie validator, textFromValue und valueFromText verwendet werden können, um das Standardverhalten anzupassen.

SpinBox {
    id: spinBox
    from: 0
    to: items.length - 1
    value: 1 // "Medium"

    property list<string> items: ["Small", "Medium", "Large"]

    validator: RegularExpressionValidator {
        regularExpression: new RegExp("(Small|Medium|Large)", "i")
    }

    textFromValue: function(value) {
        return items[value];
    }

    valueFromText: function(text) {
        for (var i = 0; i < items.length; ++i) {
            if (items[i].toLowerCase().indexOf(text.toLowerCase()) === 0)
                return i
        }
        return spinBox.value
    }
}

Ein Präfix und Suffix kann mit regulären Ausdrücken hinzugefügt werden:

SpinBox {
    id: spinBox
    from: -100
    value: 11
    to: 100
    editable: true
    anchors.centerIn: parent

    property string prefix: "L="
    property string suffix: "m"

    readonly property regexp numberExtractionRegExp: /\D*?(-?\d*\.?\d*)\D*$/

    validator: RegularExpressionValidator { regularExpression: numberExtractionRegExp }

    textFromValue: function(value, locale) {
        return prefix + Number(value).toLocaleString(locale, 'f', 0) + suffix
    }

    valueFromText: function(text, locale) {
        return Number.fromLocaleString(locale, numberExtractionRegExp.exec(text)[1])
    }
}

Siehe auch Tumbler, Anpassen der SpinBox und Fokusverwaltung in Qt Quick Steuerelemente.

Dokumentation der Eigenschaften

displayText : string [read-only, since QtQuick.Controls 2.4 (Qt 5.11)]

Diese Eigenschaft enthält den textuellen Wert der Spinbox.

Der Wert der Eigenschaft basiert auf textFromValue und locale, und ist gleich:

var text = spinBox.textFromValue(spinBox.value, spinBox.locale)

Diese Eigenschaft wurde in QtQuick.Controls 2.4 (Qt 5.11) eingeführt.

Siehe auch textFromValue.

down group

down.hovered : bool

down.implicitIndicatorHeight : real

down.implicitIndicatorWidth : real

down.indicator : Item

down.pressed : bool

Diese gruppierte Eigenschaft enthält das Element down indicator und die zugehörigen Eigenschaften.

Die Eigenschaft down.hovered wurde in QtQuick.Controls 2.1 eingeführt, und die Eigenschaften down.implicitIndicatorWidth und down.implicitIndicatorHeight wurden in QtQuick.Controls 2.5 eingeführt.

Siehe auch decrease().

editable : bool

Diese Eigenschaft gibt an, ob die Spinbox bearbeitbar ist. Der Standardwert ist false.

Siehe auch validator.

from : double

Diese Eigenschaft enthält den Anfangswert für den Bereich. Der Standardwert ist 0.

Siehe auch to und value.

inputMethodComposing : bool [read-only, since QtQuick.Controls 2.2 (Qt 5.9)]

Diese Eigenschaft gibt an, ob ein bearbeitbares Drehfeld eine partielle Texteingabe durch eine Eingabemethode aufweist.

Während des Zusammensetzens kann eine Eingabemethode auf Maus- oder Tastenereignisse des Drehkastens angewiesen sein, um den Teiltext zu bearbeiten oder zu bestätigen. Diese Eigenschaft kann verwendet werden, um zu bestimmen, wann Event-Handler, die den korrekten Betrieb einer Eingabemethode stören könnten, deaktiviert werden sollen.

Diese Eigenschaft wurde in QtQuick.Controls 2.2 (Qt 5.9) eingeführt.

inputMethodHints : flags [since QtQuick.Controls 2.2 (Qt 5.9)]

Diese Eigenschaft gibt der Eingabemethode Hinweise auf den erwarteten Inhalt des Drehkastens und seine Funktionsweise.

Der Standardwert ist Qt.ImhDigitsOnly.

Der Wert ist eine bitweise Kombination von Flags oder Qt.ImhNone, wenn keine Hinweise gesetzt sind.

Flags, die das Verhalten verändern, sind:

  • Qt.ImhHiddenText - Zeichen sollten versteckt werden, wie es typischerweise bei der Eingabe von Passwörtern verwendet wird.
  • Qt.ImhSensitiveData - Eingegebener Text sollte von der aktiven Eingabemethode nicht in einem persistenten Speicher wie dem prädiktiven Benutzerwörterbuch gespeichert werden.
  • Qt.ImhNoAutoUppercase - Die Eingabemethode sollte nicht versuchen, am Ende eines Satzes automatisch auf Großbuchstaben umzuschalten.
  • Qt.ImhPreferNumbers - Zahlen werden bevorzugt (sind aber nicht erforderlich).
  • Qt.ImhPreferUppercase - Großbuchstaben werden bevorzugt (sind aber nicht erforderlich).
  • Qt.ImhPreferLowercase - Kleinbuchstaben werden bevorzugt (sind aber nicht erforderlich).
  • Qt.ImhNoPredictiveText - Keine Textvorhersage (d.h. Wörterbuchsuche) während des Tippens verwenden.
  • Qt.ImhDate - Der Texteditor funktioniert wie ein Datumsfeld.
  • Qt.ImhTime - Der Texteditor funktioniert wie ein Zeitfeld.

Flags, die die Eingabe einschränken (exklusive Flags) sind:

  • Qt.ImhDigitsOnly - Nur Ziffern sind erlaubt.
  • Qt.ImhFormattedNumbersOnly - Nur die Eingabe von Zahlen ist erlaubt. Dies schließt Dezimalpunkt und Minuszeichen ein.
  • Qt.ImhUppercaseOnly - Nur die Eingabe von Großbuchstaben ist erlaubt.
  • Qt.ImhLowercaseOnly - Nur die Eingabe von Kleinbuchstaben ist erlaubt.
  • Qt.ImhDialableCharactersOnly - Nur Zeichen, die für die Telefonwahl geeignet sind, sind erlaubt.
  • Qt.ImhEmailCharactersOnly - Nur Zeichen, die für E-Mail-Adressen geeignet sind, sind erlaubt.
  • Qt.ImhUrlCharactersOnly - Nur Zeichen, die für URLs geeignet sind, sind erlaubt.

Masken:

  • Qt.ImhExclusiveInputMask - Diese Maske ergibt einen Wert ungleich Null, wenn eines der Exklusiv-Flags verwendet wird.

Diese Eigenschaft wurde in QtQuick.Controls 2.2 (Qt 5.9) eingeführt.

live : bool [since 6.6]

Diese Eigenschaft legt fest, ob value aktualisiert wird, wenn der Benutzer displayText bearbeitet. Der Standardwert ist false. Wenn diese Eigenschaft true lautet und der vom Benutzer eingegebene Wert gültig ist und innerhalb der Grenzen der Spinbox [from, to] liegt, wird der Wert von SpinBox gesetzt. Wenn diese Eigenschaft false ist oder der vom Benutzer eingegebene Wert außerhalb der Grenzen liegt, wird der Wert nicht aktualisiert, bis die Enter- oder Return-Taste gedrückt wird oder das Eingabefeld den Fokus verliert.

Diese Eigenschaft wurde in Qt 6.6 eingeführt.

Siehe auch editable und displayText.

stepSize : double

Diese Eigenschaft gibt die Schrittweite an. Der Standardwert ist 1.

Siehe auch increase() und decrease().

textFromValue : function

Diese Eigenschaft enthält eine Callback-Funktion, die immer dann aufgerufen wird, wenn ein Integer-Wert in Anzeigetext umgewandelt werden muss.

Die Standardfunktion kann überschrieben werden, um benutzerdefinierten Text für einen bestimmten Wert anzuzeigen. Dies gilt sowohl für bearbeitbare als auch für nicht bearbeitbare Spinboxen; wenn beispielsweise die Auf- und Ab-Tasten oder ein Mausrad zum Erhöhen und Verringern des Wertes verwendet werden, wird der neue Wert mithilfe dieser Funktion in Anzeigetext umgewandelt.

Die Signatur der Callback-Funktion lautet string function(value, locale). Die Funktion kann ein oder zwei Argumente haben, wobei das erste Argument der zu konvertierende Wert und das optionale zweite Argument das Gebietsschema ist, das für die Konvertierung verwendet werden soll, falls zutreffend.

Die Standardimplementierung führt die Konvertierung mit Number.toLocaleString() durch:

textFromValue: function(value, locale) { return Number(value).toLocaleString(locale, 'f', 0); }

Hinweis: Bei der Anwendung einer benutzerdefinierten textFromValue -Implementierung für editierbare Spinboxen muss eine passende valueFromText -Implementierung bereitgestellt werden, um den benutzerdefinierten Text wieder in einen Integer-Wert umwandeln zu können.

Siehe auch valueFromText, validator, und locale.

to : int

Diese Eigenschaft enthält den Endwert für den Bereich. Der Standardwert ist 2.

Siehe auch from und value.

up group

up.hovered : bool

up.implicitIndicatorHeight : real

up.implicitIndicatorWidth : real

up.indicator : Item

up.pressed : bool

Diese gruppierte Eigenschaft enthält das Element des Aufwärtsindikators und seine zugehörigen Eigenschaften.

Die Eigenschaft up.hovered wurde in QtQuick.Controls 2.1 eingeführt, und die Eigenschaften up.implicitIndicatorWidth und up.implicitIndicatorHeight wurden in QtQuick.Controls 2.5 eingeführt.

Siehe auch increase().

validator : Validator

Diese Eigenschaft enthält den Eingabetext-Validator für bearbeitbare Spinboxen. Standardmäßig verwendet SpinBox IntValidator , um die Eingabe ganzer Zahlen zu akzeptieren.

SpinBox {
    id: control
    validator: IntValidator {
        locale: control.locale.name
        bottom: Math.min(control.from, control.to)
        top: Math.max(control.from, control.to)
    }
}

Siehe auch editable, textFromValue, valueFromText, locale, und Validierung von Eingabetext.

value : int

Diese Eigenschaft enthält den Wert im Bereich from - to. Der Standardwert ist 0.

valueFromText : function

Diese Eigenschaft enthält eine Callback-Funktion, die immer dann aufgerufen wird, wenn der eingegebene Text in einen Integer-Wert umgewandelt werden muss.

Diese Funktion muss nur überschrieben werden, wenn textFromValue für eine editierbare Spinbox überschrieben wird.

Die Signatur der Callback-Funktion lautet int function(text, locale). Die Funktion kann ein oder zwei Argumente haben, wobei das erste Argument der zu konvertierende Text und das optionale zweite Argument das Gebietsschema ist, das für die Konvertierung verwendet werden soll, falls zutreffend.

Die Standardimplementierung führt die Konvertierung mit Number.fromLocaleString() durch:

valueFromText: function(text, locale) { return Number.fromLocaleString(locale, text); }

Hinweis: Wenn eine benutzerdefinierte textFromValue Implementierung für editierbare Spinboxen verwendet wird, muss eine passende valueFromText Implementierung bereitgestellt werden, um den benutzerdefinierten Text zurück in einen Integer-Wert konvertieren zu können.

Siehe auch textFromValue, validator, und locale.

wrap : bool [since QtQuick.Controls 2.3 (Qt 5.10)]

Diese Eigenschaft legt fest, ob die Spinbox umbrochen wird. Der Standardwert ist false.

Wenn wrap true ist, ändert sich der Wert nach to zu from und umgekehrt.

Diese Eigenschaft wurde in QtQuick.Controls 2.3 (Qt 5.10) eingeführt.

Signal-Dokumentation

[since QtQuick.Controls 2.2 (Qt 5.9)] valueModified()

Dieses Signal wird ausgegeben, wenn der Wert des Drehfelds vom Benutzer interaktiv geändert wurde, entweder durch Berührung, Maus, Rad oder Tasten. Im Falle der Interaktion über die Tastatur wird das Signal nur ausgegeben, wenn der Text akzeptiert wurde, d. h. wenn die Eingabe- oder Eingabetaste gedrückt wird oder das Eingabefeld den Fokus verliert.

Hinweis: Der entsprechende Handler ist onValueModified.

Dieses Signal wurde in QtQuick.Controls 2.2 (Qt 5.9) eingeführt.

Dokumentation der Methode

void decrease()

Verringert den Wert um stepSize, oder 1, wenn stepSize nicht definiert ist.

Siehe auch stepSize.

void increase()

Erhöht den Wert um stepSize, oder 1, wenn stepSize nicht definiert ist.

Siehe auch stepSize.

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