QAbstractSpinBox Class

Die Klasse QAbstractSpinBox bietet eine Spinbox und eine Zeilenbearbeitung zur Anzeige von Werten. Mehr...

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

QDateTimeEdit, QDoubleSpinBox, und QSpinBox

Öffentliche Typen

enum ButtonSymbols { UpDownArrows, PlusMinus, NoButtons }
enum CorrectionMode { CorrectToPreviousValue, CorrectToNearestValue }
flags StepEnabled
enum StepEnabledFlag { StepNone, StepUpEnabled, StepDownEnabled }
enum StepType { DefaultStepType, AdaptiveDecimalStepType }

Eigenschaften

Öffentliche Funktionen

QAbstractSpinBox(QWidget *parent = nullptr)
virtual ~QAbstractSpinBox()
Qt::Alignment alignment() const
QAbstractSpinBox::ButtonSymbols buttonSymbols() const
QAbstractSpinBox::CorrectionMode correctionMode() const
virtual void fixup(QString &input) const
bool hasAcceptableInput() const
bool hasFrame() const
void interpretText()
bool isAccelerated() const
bool isGroupSeparatorShown() const
bool isReadOnly() const
bool keyboardTracking() const
void setAccelerated(bool on)
void setAlignment(Qt::Alignment flag)
void setButtonSymbols(QAbstractSpinBox::ButtonSymbols bs)
void setCorrectionMode(QAbstractSpinBox::CorrectionMode cm)
void setFrame(bool)
void setGroupSeparatorShown(bool shown)
void setKeyboardTracking(bool kt)
void setReadOnly(bool r)
void setSpecialValueText(const QString &txt)
void setWrapping(bool w)
QString specialValueText() const
virtual void stepBy(int steps)
QString text() const
virtual QValidator::State validate(QString &input, int &pos) const
bool wrapping() const

Reimplementierte öffentliche Funktionen

virtual bool event(QEvent *event) override
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const override
virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override

Öffentliche Slots

virtual void clear()
void selectAll()
void stepDown()
void stepUp()

Signale

Geschützte Funktionen

virtual void initStyleOption(QStyleOptionSpinBox *option) const
QLineEdit *lineEdit() const
void setLineEdit(QLineEdit *lineEdit)
virtual QAbstractSpinBox::StepEnabled stepEnabled() const

Reimplementierte geschützte Funktionen

virtual void changeEvent(QEvent *event) override
virtual void closeEvent(QCloseEvent *event) override
virtual void contextMenuEvent(QContextMenuEvent *event) override
virtual void focusInEvent(QFocusEvent *event) override
virtual void focusOutEvent(QFocusEvent *event) override
virtual void hideEvent(QHideEvent *event) override
virtual void keyPressEvent(QKeyEvent *event) override
virtual void keyReleaseEvent(QKeyEvent *event) override
virtual void mouseMoveEvent(QMouseEvent *event) override
virtual void mousePressEvent(QMouseEvent *event) override
virtual void mouseReleaseEvent(QMouseEvent *event) override
virtual void paintEvent(QPaintEvent *event) override
virtual void resizeEvent(QResizeEvent *event) override
virtual void showEvent(QShowEvent *event) override
virtual void timerEvent(QTimerEvent *event) override
virtual void wheelEvent(QWheelEvent *event) override

Detaillierte Beschreibung

Die Klasse ist als gemeinsame Superklasse für Widgets wie QSpinBox, QDoubleSpinBox und QDateTimeEdit

Hier sind die wichtigsten Eigenschaften der Klasse:

  1. text: Der Text, der in der QAbstractSpinBox angezeigt wird.
  2. Ausrichtung: Die Ausrichtung des Textes in der QAbstractSpinBox.
  3. wrapping: Ob die QAbstractSpinBox vom Minimalwert zum Maximalwert umbricht und andersherum.

QAbstractSpinBox bietet eine virtuelle Funktion stepBy(), die immer dann aufgerufen wird, wenn der Benutzer einen Schritt auslöst. Diese Funktion nimmt einen Integer-Wert an, der angibt, wie viele Schritte gemacht wurden. Wenn Sie z. B. Qt::Key_Down drücken, wird stepBy(-1) aufgerufen.

Wenn der Benutzer einen Schritt auslöst, während er Qt::ControlModifier gedrückt hält, geht die QAbstractSpinBox um 10 Schritte weiter, anstatt einen einzigen Schritt zu machen. Dieser Schrittmodifikator wirkt sich auf Rad-Ereignisse, Tastenereignisse und die Interaktion mit den Spinbox-Schaltflächen aus. Beachten Sie, dass unter macOS Control der Befehlstaste entspricht.

Seit Qt 5.12 kann QStyle::SH_SpinBox_StepModifier verwendet werden, um auszuwählen, welche Qt::KeyboardModifier die Schrittrate erhöht. Qt::NoModifier deaktiviert diese Funktion.

QAbstractSpinBox bietet auch eine virtuelle Funktion stepEnabled(), um zu bestimmen, ob das Hoch- oder Runterschalten an einem beliebigen Punkt erlaubt ist. Diese Funktion gibt ein Bitset von StepEnabled zurück.

Siehe auch QAbstractSlider, QSpinBox, QDoubleSpinBox, QDateTimeEdit, und Spin Boxes Example.

Dokumentation der Mitgliedstypen

enum QAbstractSpinBox::ButtonSymbols

Dieser Enum-Typ beschreibt die Symbole, die auf den Schaltflächen in einer Spin-Box angezeigt werden können.

KonstanteWertBeschreibung
QAbstractSpinBox::UpDownArrows0Kleine Pfeile im klassischen Stil.
QAbstractSpinBox::PlusMinus1+ und - Symbole.
QAbstractSpinBox::NoButtons2Zeigt keine Schaltflächen an.

Siehe auch QAbstractSpinBox::buttonSymbols.

enum QAbstractSpinBox::CorrectionMode

Dieser Enum-Typ beschreibt den Modus, den die Spinbox verwendet, um einen Intermediate Wert zu korrigieren, wenn die Bearbeitung abgeschlossen ist.

KonstanteWertBeschreibung
QAbstractSpinBox::CorrectToPreviousValue0Die Spinbox greift auf den letzten gültigen Wert zurück.
QAbstractSpinBox::CorrectToNearestValue1Die Spinbox greift auf den nächstgelegenen gültigen Wert zurück.

Siehe auch correctionMode.

enum QAbstractSpinBox::StepEnabledFlag
flags QAbstractSpinBox::StepEnabled

KonstanteWert
QAbstractSpinBox::StepNone0x00
QAbstractSpinBox::StepUpEnabled0x01
QAbstractSpinBox::StepDownEnabled0x02

Der Typ StepEnabled ist ein Typedef für QFlags<StepEnabledFlag>. Er speichert eine ODER-Kombination von StepEnabledFlag-Werten.

enum QAbstractSpinBox::StepType

KonstanteWert
QAbstractSpinBox::DefaultStepType0
QAbstractSpinBox::AdaptiveDecimalStepType1

Eigenschaft Dokumentation

accelerated : bool

Diese Eigenschaft legt fest, ob der Drehkasten die Frequenz der Schritte beschleunigt, wenn Sie die Auf-/Ab-Tasten drücken.

Wenn sie aktiviert ist, erhöht/verringert der Drehkasten den Wert schneller, je länger Sie die Taste gedrückt halten.

Zugriffsfunktionen:

bool isAccelerated() const
void setAccelerated(bool on)

[read-only] acceptableInput : const bool

Diese Eigenschaft gibt an, ob die Eingabe die aktuelle Validierung erfüllt

Zugriffsfunktionen:

bool hasAcceptableInput() const

Siehe auch validate(), fixup(), und correctionMode.

alignment : Qt::Alignment

Diese Eigenschaft enthält die Ausrichtung der Spinbox

Mögliche Werte sind Qt::AlignLeft, Qt::AlignRight, und Qt::AlignHCenter.

Standardmäßig ist die Ausrichtung Qt::AlignLeft

Der Versuch, die Ausrichtung auf eine unzulässige Flaggenkombination zu setzen, führt zu nichts.

Zugriffsfunktionen:

Qt::Alignment alignment() const
void setAlignment(Qt::Alignment flag)

Siehe auch Qt::Alignment.

buttonSymbols : ButtonSymbols

Diese Eigenschaft enthält den aktuellen Symbolmodus der Schaltfläche

Die möglichen Werte sind entweder UpDownArrows oder PlusMinus. Der Standardwert ist UpDownArrows.

Beachten Sie, dass einige Stile PlusMinus und UpDownArrows identisch darstellen können.

Zugriffsfunktionen:

QAbstractSpinBox::ButtonSymbols buttonSymbols() const
void setButtonSymbols(QAbstractSpinBox::ButtonSymbols bs)

Siehe auch ButtonSymbols.

correctionMode : CorrectionMode

Diese Eigenschaft enthält den Modus zur Korrektur eines Intermediate Wertes, wenn die Bearbeitung beendet ist.

Der Standardmodus ist QAbstractSpinBox::CorrectToPreviousValue.

Zugriffsfunktionen:

QAbstractSpinBox::CorrectionMode correctionMode() const
void setCorrectionMode(QAbstractSpinBox::CorrectionMode cm)

Siehe auch acceptableInput, validate(), und fixup().

frame : bool

Diese Eigenschaft legt fest, ob der Spinnkasten sich selbst mit einem Rahmen zeichnet

Wenn sie aktiviert ist (Standardeinstellung), zeichnet sich die Spinbox innerhalb eines Rahmens, andernfalls zeichnet sie sich ohne Rahmen.

Zugriffsfunktionen:

bool hasFrame() const
void setFrame(bool)

keyboardTracking : bool

Diese Eigenschaft gibt an, ob das Tastatur-Tracking für die Spinbox aktiviert ist.

Wenn die Tastaturverfolgung aktiviert ist (Standard), sendet die Spinbox die Signale valueChanged() und textChanged(), während der neue Wert über die Tastatur eingegeben wird.

Wenn der Benutzer z. B. den Wert 600 eingibt, indem er 6, 0 und 0 tippt, sendet die Spinbox drei Signale mit den Werten 6, 60 bzw. 600 aus.

Wenn die Tastaturverfolgung deaktiviert ist, sendet die Spinbox die Signale valueChanged() und textChanged() nicht während des Tippens aus. Sie sendet die Signale später, wenn die Return-Taste gedrückt wird, wenn der Tastaturfokus verloren geht oder wenn andere Spinbox-Funktionen verwendet werden, z. B. das Drücken einer Pfeiltaste.

Zugriffsfunktionen:

bool keyboardTracking() const
void setKeyboardTracking(bool kt)

readOnly : bool

Diese Eigenschaft gibt an, ob das Drehfeld schreibgeschützt ist.

Im schreibgeschützten Modus kann der Benutzer den Text in die Zwischenablage kopieren oder ihn per Drag & Drop verschieben, aber nicht bearbeiten.

Auf der Website QLineEdit unter QAbstractSpinBox wird im schreibgeschützten Modus kein Cursor angezeigt.

Zugriffsfunktionen:

bool isReadOnly() const
void setReadOnly(bool r)

Siehe auch QLineEdit::readOnly.

showGroupSeparator : bool

Diese Eigenschaft gibt an, ob ein Tausendertrennzeichen aktiviert ist. Standardmäßig ist diese Eigenschaft falsch.

Zugriffsfunktionen:

bool isGroupSeparatorShown() const
void setGroupSeparatorShown(bool shown)

specialValueText : QString

Diese Eigenschaft enthält den Text für den Sonderwert

Wenn er gesetzt ist, zeigt der Drehkasten diesen Text anstelle eines numerischen Wertes an, wenn der aktuelle Wert gleich dem Minimum() ist. Typischerweise wird diese Eigenschaft verwendet, um anzuzeigen, dass diese Auswahl eine besondere (Standard-)Bedeutung hat.

Wenn Ihre Spin-Box dem Benutzer beispielsweise die Möglichkeit gibt, einen Skalierungsfaktor (oder eine Zoomstufe) für die Anzeige eines Bildes auszuwählen, und Ihre Anwendung in der Lage ist, automatisch einen Faktor auszuwählen, der es ermöglicht, dass das Bild vollständig in das Anzeigefenster passt, können Sie die Spin-Box wie folgt einrichten:

    QSpinBox *zoomSpinBox = new QSpinBox;
    zoomSpinBox->setRange(0, 1000);
    zoomSpinBox->setSingleStep(10);
    zoomSpinBox->setSuffix("%");
    zoomSpinBox->setSpecialValueText(tr("Automatic"));
    zoomSpinBox->setValue(100);

Der Benutzer kann dann eine Skalierung von 1 % bis 1000 % wählen oder "Auto" auswählen, um der Anwendung die Wahl zu überlassen. Ihr Code muss dann den Spin-Box-Wert von 0 als eine Aufforderung des Benutzers interpretieren, das Bild so zu skalieren, dass es in das Fenster passt.

Alle Werte werden mit dem Präfix und dem Suffix (falls festgelegt) angezeigt, mit Ausnahme des Sonderwerts, der nur den Text des Sonderwerts anzeigt. Dieser spezielle Text wird mit dem Signal QSpinBox::textChanged() übergeben, das ein QString übergibt.

Um die Anzeige des Sonderwerttextes zu deaktivieren, rufen Sie diese Funktion mit einer leeren Zeichenkette auf. Standardmäßig wird kein Sonderwerttext angezeigt, d. h. der numerische Wert wird wie üblich angezeigt.

Wenn kein Sonderwerttext gesetzt ist, gibt specialValueText() eine leere Zeichenkette zurück.

Zugriffsfunktionen:

QString specialValueText() const
void setSpecialValueText(const QString &txt)

[read-only] text : const QString

Diese Eigenschaft enthält den Text der Spin-Box, einschließlich Präfix und Suffix

Es gibt keinen Standardtext.

Zugriffsfunktionen:

QString text() const

wrapping : bool

Diese Eigenschaft gibt an, ob die Spinbox kreisförmig ist.

Wenn "Wrapping" wahr ist, führt ein Schritt vom Maximum()-Wert nach oben zum Minimum()-Wert und umgekehrt. Wrapping macht nur Sinn, wenn Sie Minimum() und Maximum() Werte gesetzt haben.

QSpinBox *spinBox = new QSpinBox(this);
spinBox->setRange(0, 100);
spinBox->setWrapping(true);
spinBox->setValue(100);
spinBox->stepBy(1);
// value is 0

Zugriffsfunktionen:

bool wrapping() const
void setWrapping(bool w)

Siehe auch QSpinBox::minimum() und QSpinBox::maximum().

Dokumentation der Mitgliedsfunktionen

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

Konstruiert eine abstrakte Spinbox mit der angegebenen parent mit Standard wrapping, und Ausrichtungseigenschaften.

[virtual noexcept] QAbstractSpinBox::~QAbstractSpinBox()

Wird aufgerufen, wenn die QAbstractSpinBox zerstört wird.

[override virtual protected] void QAbstractSpinBox::changeEvent(QEvent *event)

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

[virtual slot] void QAbstractSpinBox::clear()

Löscht den gesamten Text mit Ausnahme von Präfix und Suffix aus dem Lineedit.

[override virtual protected] void QAbstractSpinBox::closeEvent(QCloseEvent *event)

Reimplements: QWidget::closeEvent(QCloseEvent *event).

[override virtual protected] void QAbstractSpinBox::contextMenuEvent(QContextMenuEvent *event)

Reimplements: QWidget::contextMenuEvent(QContextMenuEvent *event).

[signal] void QAbstractSpinBox::editingFinished()

Dieses Signal wird ausgegeben, wenn die Bearbeitung abgeschlossen ist. Dies geschieht, wenn die Spinbox den Fokus verliert und wenn Enter gedrückt wird.

[override virtual] bool QAbstractSpinBox::event(QEvent *event)

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

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

Diese virtuelle Funktion wird von QAbstractSpinBox aufgerufen, wenn input nicht durch Drücken der Return-Taste oder durch Aufruf von interpretText() auf QValidator::Acceptable validiert wird. Sie wird versuchen, den Text so zu ändern, dass er gültig ist. Reimplementiert in den verschiedenen Unterklassen.

[override virtual protected] void QAbstractSpinBox::focusInEvent(QFocusEvent *event)

Reimplements: QWidget::focusInEvent(QFocusEvent *event).

[override virtual protected] void QAbstractSpinBox::focusOutEvent(QFocusEvent *event)

Reimplements: QWidget::focusOutEvent(QFocusEvent *event).

[override virtual protected] void QAbstractSpinBox::hideEvent(QHideEvent *event)

Reimplements: QWidget::hideEvent(QHideEvent *event).

[virtual protected] void QAbstractSpinBox::initStyleOption(QStyleOptionSpinBox *option) const

Initialisieren Sie option mit den Werten aus dieser QSpinBox. Diese Methode ist nützlich für Unterklassen, wenn sie eine QStyleOptionSpinBox benötigen, aber nicht alle Informationen selbst eingeben wollen.

Siehe auch QStyleOption::initFrom().

[override virtual] QVariant QAbstractSpinBox::inputMethodQuery(Qt::InputMethodQuery query) const

Reimplements: QWidget::inputMethodQuery(Qt::InputMethodQuery query) const.

void QAbstractSpinBox::interpretText()

Diese Funktion interpretiert den Text des Drehkastens. Wenn sich der Wert seit der letzten Interpretation geändert hat, gibt sie Signale aus.

[override virtual protected] void QAbstractSpinBox::keyPressEvent(QKeyEvent *event)

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

Diese Funktion verarbeitet Tastatureingaben.

Die folgenden Tasten werden speziell behandelt:

Eingabe/ReturnDiese Funktion interpretiert den Text neu und sendet ein Signal, auch wenn sich der Wert seit der letzten Ausgabe eines Signals nicht geändert hat.
AufwärtsDies ruft stepBy auf (1)
AbwärtsRuft stepBy auf (-1)
Seite nach obenRuft stepBy auf (10)
Seite abwärtsRuft stepBy auf (-10)

Siehe auch stepBy().

[override virtual protected] void QAbstractSpinBox::keyReleaseEvent(QKeyEvent *event)

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

[protected] QLineEdit *QAbstractSpinBox::lineEdit() const

Diese Funktion gibt einen Zeiger auf die Zeilenbearbeitung der Spinbox zurück.

Siehe auch setLineEdit().

[override virtual] QSize QAbstractSpinBox::minimumSizeHint() const

Reimplantiert eine Zugriffsfunktion für die Eigenschaft: QWidget::minimumSizeHint.

[override virtual protected] void QAbstractSpinBox::mouseMoveEvent(QMouseEvent *event)

Reimplements: QWidget::mouseMoveEvent(QMouseEvent *event).

[override virtual protected] void QAbstractSpinBox::mousePressEvent(QMouseEvent *event)

Reimplements: QWidget::mousePressEvent(QMouseEvent *event).

[override virtual protected] void QAbstractSpinBox::mouseReleaseEvent(QMouseEvent *event)

Reimplements: QWidget::mouseReleaseEvent(QMouseEvent *event).

[override virtual protected] void QAbstractSpinBox::paintEvent(QPaintEvent *event)

Reimplements: QWidget::paintEvent(QPaintEvent *event).

[override virtual protected] void QAbstractSpinBox::resizeEvent(QResizeEvent *event)

Reimplements: QWidget::resizeEvent(QResizeEvent *event).

[slot] void QAbstractSpinBox::selectAll()

Markiert den gesamten Text in der Spinbox mit Ausnahme des Präfixes und Suffixes.

[protected] void QAbstractSpinBox::setLineEdit(QLineEdit *lineEdit)

Setzt die Zeilenbearbeitung der Spinbox auf lineEdit anstelle des aktuellen Zeilenbearbeitungs-Widgets. lineEdit kann nicht nullptr sein.

QAbstractSpinBox übernimmt das Eigentum an der neuen lineEdit

Wenn QLineEdit::validator() für die lineEdit nullptr zurückgibt, wird der interne Validator der Spinbox auf die Zeilenbearbeitung gesetzt.

Siehe auch lineEdit().

[override virtual protected] void QAbstractSpinBox::showEvent(QShowEvent *event)

Reimplements: QWidget::showEvent(QShowEvent *event).

[override virtual] QSize QAbstractSpinBox::sizeHint() const

Reimplantiert eine Zugriffsfunktion für die Eigenschaft: QWidget::sizeHint.

[virtual] void QAbstractSpinBox::stepBy(int steps)

Virtuelle Funktion, die aufgerufen wird, wenn der Benutzer einen Schritt auslöst. Der Parameter steps gibt an, wie viele Schritte gemacht wurden. Wenn Sie z. B. Qt::Key_Down drücken, wird stepBy(-1) aufgerufen, wenn Sie Qt::Key_PageUp drücken, wird stepBy(10) aufgerufen.

Wenn Sie QAbstractSpinBox unterklassifizieren, müssen Sie diese Funktion neu implementieren. Beachten Sie, dass diese Funktion auch dann aufgerufen wird, wenn der resultierende Wert außerhalb der Grenzen von Minimum und Maximum liegt. Es ist die Aufgabe dieser Funktion, mit solchen Situationen umzugehen.

Siehe auch stepUp(), stepDown(), und keyPressEvent().

[slot] void QAbstractSpinBox::stepDown()

Geht um einen Zeilenschritt nach unten Der Aufruf dieses Slots ist analog zum Aufruf von stepBy(-1);

Siehe auch stepBy() und stepUp().

[virtual protected] QAbstractSpinBox::StepEnabled QAbstractSpinBox::stepEnabled() const

Virtuelle Funktion, die feststellt, ob das Auf- und Abwärtsgehen zu einem bestimmten Zeitpunkt erlaubt ist.

Der Pfeil nach oben wird als deaktiviert dargestellt, es sei denn (stepEnabled() & StepUpEnabled) != 0.

Die Standardimplementierung gibt (StepUpEnabled| StepDownEnabled) zurück, wenn der Umbruch eingeschaltet ist. Andernfalls gibt sie StepDownEnabled zurück, wenn der Wert > minimum() ist, oder StepUpEnabled, wenn der Wert < maximum() ist.

Wenn Sie die Subklasse QAbstractSpinBox verwenden, müssen Sie diese Funktion neu implementieren.

Siehe auch QSpinBox::minimum(), QSpinBox::maximum(), und wrapping().

[slot] void QAbstractSpinBox::stepUp()

Schrittweise Erhöhung um einen Zeilenschritt Der Aufruf dieses Slots entspricht dem Aufruf von stepBy(1);

Siehe auch stepBy() und stepDown().

[override virtual protected] void QAbstractSpinBox::timerEvent(QTimerEvent *event)

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

[virtual] QValidator::State QAbstractSpinBox::validate(QString &input, int &pos) const

Diese virtuelle Funktion wird von QAbstractSpinBox aufgerufen, um festzustellen, ob input gültig ist. Der Parameter pos gibt die Position in der Zeichenkette an. Reimplementiert in den verschiedenen Unterklassen.

[override virtual protected] void QAbstractSpinBox::wheelEvent(QWheelEvent *event)

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.