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: |
Ö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
Signale
void | editingFinished() |
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:
- text: Der Text, der in der QAbstractSpinBox angezeigt wird.
- Ausrichtung: Die Ausrichtung des Textes in der QAbstractSpinBox.
- 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.
Konstante | Wert | Beschreibung |
---|---|---|
QAbstractSpinBox::UpDownArrows | 0 | Kleine Pfeile im klassischen Stil. |
QAbstractSpinBox::PlusMinus | 1 | + und - Symbole. |
QAbstractSpinBox::NoButtons | 2 | Zeigt 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.
Konstante | Wert | Beschreibung |
---|---|---|
QAbstractSpinBox::CorrectToPreviousValue | 0 | Die Spinbox greift auf den letzten gültigen Wert zurück. |
QAbstractSpinBox::CorrectToNearestValue | 1 | Die Spinbox greift auf den nächstgelegenen gültigen Wert zurück. |
Siehe auch correctionMode.
enum QAbstractSpinBox::StepEnabledFlag
flags QAbstractSpinBox::StepEnabled
Konstante | Wert |
---|---|
QAbstractSpinBox::StepNone | 0x00 |
QAbstractSpinBox::StepUpEnabled | 0x01 |
QAbstractSpinBox::StepDownEnabled | 0x02 |
Der Typ StepEnabled ist ein Typedef für QFlags<StepEnabledFlag>. Er speichert eine ODER-Kombination von StepEnabledFlag-Werten.
enum QAbstractSpinBox::StepType
Konstante | Wert |
---|---|
QAbstractSpinBox::DefaultStepType | 0 |
QAbstractSpinBox::AdaptiveDecimalStepType | 1 |
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/Return | Diese 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ärts | Dies ruft stepBy auf (1) |
Abwärts | Ruft stepBy auf (-1) |
Seite nach oben | Ruft stepBy auf (10) |
Seite abwärts | Ruft 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.