QSpinBox Class
Die Klasse QSpinBox bietet ein Spin-Box-Widget. Mehr...
Kopfzeile: | #include <QSpinBox> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Vererbungen: | QAbstractSpinBox |
Eigenschaften
|
|
Öffentliche Funktionen
QSpinBox(QWidget *parent = nullptr) | |
virtual | ~QSpinBox() |
QString | cleanText() const |
int | displayIntegerBase() const |
int | maximum() const |
int | minimum() const |
QString | prefix() const |
void | setDisplayIntegerBase(int base) |
void | setMaximum(int max) |
void | setMinimum(int min) |
void | setPrefix(const QString &prefix) |
void | setRange(int minimum, int maximum) |
void | setSingleStep(int val) |
void | setStepType(QAbstractSpinBox::StepType stepType) |
void | setSuffix(const QString &suffix) |
int | singleStep() const |
QAbstractSpinBox::StepType | stepType() const |
QString | suffix() const |
int | value() const |
Öffentliche Slots
void | setValue(int val) |
Signale
void | textChanged(const QString &text) |
void | valueChanged(int i) |
Geschützte Funktionen
virtual QString | textFromValue(int value) const |
virtual int | valueFromText(const QString &text) const |
Reimplementierte geschützte Funktionen
virtual bool | event(QEvent *event) override |
virtual void | fixup(QString &input) const override |
virtual QValidator::State | validate(QString &text, int &pos) const override |
Detaillierte Beschreibung
QSpinBox wurde entwickelt, um ganze Zahlen und diskrete Wertemengen (z.B. Monatsnamen) zu verarbeiten; verwenden Sie QDoubleSpinBox für Fließkommazahlen.
QSpinBox ermöglicht dem Benutzer, einen Wert auszuwählen, indem er auf die Auf-/Ab-Schaltflächen klickt oder die Auf-/Ab-Taste auf der Tastatur drückt, um den aktuell angezeigten Wert zu erhöhen/verringern. Der Benutzer kann den Wert auch manuell eintippen. Die Spin-Box unterstützt Integer-Werte, kann aber mit validate(), textFromValue() und valueFromText() auf verschiedene Zeichenketten erweitert werden.
Jedes Mal, wenn sich der Wert ändert, gibt die QSpinBox die Signale valueChanged() und textChanged() aus, wobei ersteres einen int und letzteres einen QString liefert. Das Signal textChanged() liefert den Wert sowohl mit prefix() als auch mit suffix(). Der aktuelle Wert kann mit value() abgefragt und mit setValue() gesetzt werden.
Durch Anklicken der Auf-/Ab-Schaltflächen oder mit den Auf-/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 mit einem der Konstruktoren festgelegt und später mit setMinimum(), setMaximum() und setSingleStep() geändert werden.
Die meisten Spinboxen sind richtungsabhängig, aber QSpinBox kann auch als kreisförmige Spinbox arbeiten, d.h. wenn der Bereich 0-99 ist und der aktuelle Wert 99 ist, wird ein Klick auf "up" 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 QSpinBox erreicht.
Unterklassifizierung von QSpinBox
Wenn die Verwendung von prefix(), suffix() und specialValueText() nicht genug Kontrolle bietet, können Sie QSpinBox unterklassifizieren und valueFromText() und textFromValue() neu implementieren. Hier ist zum Beispiel der Code für eine benutzerdefinierte Spinbox, die es dem Benutzer erlaubt, Symbolgrößen einzugeben (z. B. "32 x 32"):
int IconSizeSpinBox::valueFromText(const QString &text) const { static const QRegularExpression regExp(tr("(\\d+)(\\s*[xx]\\s*\\d+)?")); Q_ASSERT(regExp.isValid()); const QRegularExpressionMatch match = regExp.match(text); if (match.isValid()) return match.captured(1).toInt(); return 0; } QString IconSizeSpinBox::textFromValue(int value) const { return tr("%1 x %1").arg(value); }
Siehe auch QDoubleSpinBox, 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, QSpinBox::prefix, und QSpinBox::suffix.
displayIntegerBase : int
Diese Eigenschaft enthält die Basis, die für die Anzeige des Wertes des Drehkastens verwendet wird
Der Standardwert für displayIntegerBase ist 10.
Zugriffsfunktionen:
int | displayIntegerBase() const |
void | setDisplayIntegerBase(int base) |
Siehe auch textFromValue() und valueFromText().
maximum : int
Diese Eigenschaft enthält den Maximalwert der Spinbox
Beim Festlegen dieser Eigenschaft wird das Minimum gegebenenfalls angepasst, um sicherzustellen, dass der Bereich gültig bleibt.
Der Standard-Maximalwert ist 99.
Zugriffsfunktionen:
int | maximum() const |
void | setMaximum(int max) |
Siehe auch setRange() und specialValueText.
minimum : int
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.
Zugriffsfunktionen:
int | minimum() const |
void | setMinimum(int min) |
Siehe auch 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:
sb->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 : int
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. Das Setzen eines singleStep-Wertes von weniger als 0 bewirkt nichts.
Zugriffsfunktionen:
int | singleStep() const |
void | setSingleStep(int 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:
sb->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 : int
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 Signal, das den Präfix und das Suffix der Spinbox enthält.
Zugriffsfunktionen:
int | value() const |
void | setValue(int val) |
Melder-Signal:
void | valueChanged(int i) |
Dokumentation der Mitgliedsfunktionen
[explicit]
QSpinBox::QSpinBox(QWidget *parent = nullptr)
Konstruiert eine Spinbox mit 0 als Minimalwert und 99 als Maximalwert, einem Schrittwert von 1. Der Wert ist anfangs auf 0 gesetzt. Sie ist parent untergeordnet.
Siehe auch setMinimum(), setMaximum(), und setSingleStep().
[virtual noexcept]
QSpinBox::~QSpinBox()
Zerstörer.
[override virtual protected]
bool QSpinBox::event(QEvent *event)
Reimplements: QAbstractSpinBox::event(QEvent *Event).
[override virtual protected]
void QSpinBox::fixup(QString &input) const
Reimplements: QAbstractSpinBox::fixup(QString &input) const.
void QSpinBox::setRange(int minimum, int maximum)
Convenience-Funktion zum Setzen der Werte minimum und maximum mit einem einzigen Funktionsaufruf.
setRange(minimum, maximum);
ist äquivalent zu:
setMinimum(minimum); setMaximum(maximum);
Siehe auch minimum und maximum.
void QSpinBox::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 geht die Schrittweite von -1100 auf -1200 zurück.
Die Schrittrichtung wird bei der Behandlung von Flankenfällen berücksichtigt, so dass ein Schritt von 100 nach unten den Wert auf 99 statt auf 90 erhöht. 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 QSpinBox::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 protected]
QString QSpinBox::textFromValue(int 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 auf die übliche Weise mit QWidget::locale().toString() gedruckt wird, wobei jedoch das Tausendertrennzeichen entfernt wird, es sei denn, setGroupSeparatorShown() ist gesetzt. Reimplementierungen können alles zurückgeben. (Siehe das Beispiel in der ausführlichen Beschreibung.)
Hinweis: QSpinBox 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() und validate() neu implementieren.
Siehe auch valueFromText(), validate(), und QLocale::groupSeparator().
[override virtual protected]
QValidator::State QSpinBox::validate(QString &text, int &pos) const
Reimplements: QAbstractSpinBox::validate(QString &input, int &pos) const.
[signal]
void QSpinBox::valueChanged(int i)
Dieses Signal wird immer dann ausgegeben, wenn der Wert der Spin-Box geändert wird. Der Integer-Wert des neuen Wertes wird in i übergeben.
Hinweis: Benachrichtigungssignal für die Eigenschaft value.
[virtual protected]
int QSpinBox::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: QSpinBox 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.