Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qabstractspinbox.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QABSTRACTSPINBOX_H
6#define QABSTRACTSPINBOX_H
7
8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtWidgets/qwidget.h>
10#include <QtGui/qvalidator.h>
11
13
14QT_BEGIN_NAMESPACE
15
16class QLineEdit;
17
19class QStyleOptionSpinBox;
20
21class Q_WIDGETS_EXPORT QAbstractSpinBox : public QWidget
22{
23 Q_OBJECT
24
25 Q_PROPERTY(bool wrapping READ wrapping WRITE setWrapping)
26 Q_PROPERTY(bool frame READ hasFrame WRITE setFrame)
27 Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment)
28 Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly)
29 Q_PROPERTY(ButtonSymbols buttonSymbols READ buttonSymbols WRITE setButtonSymbols)
30 Q_PROPERTY(QString specialValueText READ specialValueText WRITE setSpecialValueText)
31 Q_PROPERTY(QString text READ text)
32 Q_PROPERTY(bool accelerated READ isAccelerated WRITE setAccelerated)
33 Q_PROPERTY(CorrectionMode correctionMode READ correctionMode WRITE setCorrectionMode)
34 Q_PROPERTY(bool acceptableInput READ hasAcceptableInput)
35 Q_PROPERTY(bool keyboardTracking READ keyboardTracking WRITE setKeyboardTracking)
36 Q_PROPERTY(bool showGroupSeparator READ isGroupSeparatorShown WRITE setGroupSeparatorShown)
37public:
38 explicit QAbstractSpinBox(QWidget *parent = nullptr);
39 ~QAbstractSpinBox();
40
41 enum StepEnabledFlag { StepNone = 0x00, StepUpEnabled = 0x01,
42 StepDownEnabled = 0x02 };
43 Q_DECLARE_FLAGS(StepEnabled, StepEnabledFlag)
44
45 enum ButtonSymbols { UpDownArrows, PlusMinus, NoButtons };
46 Q_ENUM(ButtonSymbols)
47
48 ButtonSymbols buttonSymbols() const;
49 void setButtonSymbols(ButtonSymbols bs);
50
51 enum CorrectionMode { CorrectToPreviousValue, CorrectToNearestValue };
52 Q_ENUM(CorrectionMode)
53
54 void setCorrectionMode(CorrectionMode cm);
55 CorrectionMode correctionMode() const;
56
57 bool hasAcceptableInput() const;
58 QString text() const;
59
60 QString specialValueText() const;
61 void setSpecialValueText(const QString &txt);
62
63 bool wrapping() const;
64 void setWrapping(bool w);
65
66 void setReadOnly(bool r);
67 bool isReadOnly() const;
68
69 void setKeyboardTracking(bool kt);
70 bool keyboardTracking() const;
71
72 void setAlignment(Qt::Alignment flag);
73 Qt::Alignment alignment() const;
74
75 void setFrame(bool);
76 bool hasFrame() const;
77
78 void setAccelerated(bool on);
79 bool isAccelerated() const;
80
81 void setGroupSeparatorShown(bool shown);
82 bool isGroupSeparatorShown() const;
83
84 QSize sizeHint() const override;
85 QSize minimumSizeHint() const override;
86 void interpretText();
87 bool event(QEvent *event) override;
88
89 QVariant inputMethodQuery(Qt::InputMethodQuery) const override;
90
91 virtual QValidator::State validate(QString &input, int &pos) const;
92 virtual void fixup(QString &input) const;
93
94 virtual void stepBy(int steps);
95
96 enum StepType {
97 DefaultStepType,
98 AdaptiveDecimalStepType
99 };
100 Q_ENUM(StepType)
101
102public Q_SLOTS:
103 void stepUp();
104 void stepDown();
105 void selectAll();
106 virtual void clear();
107protected:
108 void resizeEvent(QResizeEvent *event) override;
109 void keyPressEvent(QKeyEvent *event) override;
110 void keyReleaseEvent(QKeyEvent *event) override;
111#if QT_CONFIG(wheelevent)
112 void wheelEvent(QWheelEvent *event) override;
113#endif
114 void focusInEvent(QFocusEvent *event) override;
115 void focusOutEvent(QFocusEvent *event) override;
116#if QT_CONFIG(contextmenu)
117 void contextMenuEvent(QContextMenuEvent *event) override;
118#endif
119 void changeEvent(QEvent *event) override;
120 void closeEvent(QCloseEvent *event) override;
121 void hideEvent(QHideEvent *event) override;
122 void mousePressEvent(QMouseEvent *event) override;
123 void mouseReleaseEvent(QMouseEvent *event) override;
124 void mouseMoveEvent(QMouseEvent *event) override;
125 void timerEvent(QTimerEvent *event) override;
126 void paintEvent(QPaintEvent *event) override;
127 void showEvent(QShowEvent *event) override;
128 virtual void initStyleOption(QStyleOptionSpinBox *option) const;
129
130 QLineEdit *lineEdit() const;
131 void setLineEdit(QLineEdit *edit);
132
133 virtual StepEnabled stepEnabled() const;
134Q_SIGNALS:
135 void editingFinished();
136 void returnPressed();
137protected:
138 QAbstractSpinBox(QAbstractSpinBoxPrivate &dd, QWidget *parent = nullptr);
139
140private:
141 Q_DECLARE_PRIVATE(QAbstractSpinBox)
142 Q_DISABLE_COPY(QAbstractSpinBox)
143 friend class QAccessibleAbstractSpinBox;
144};
145Q_DECLARE_OPERATORS_FOR_FLAGS(QAbstractSpinBox::StepEnabled)
146
147QT_END_NAMESPACE
148
149#endif // QABSTRACTSPINBOX_H
The QAbstractSpinBox class provides a spinbox and a line edit to display values.
QVariant operator-(const QVariant &arg1, const QVariant &arg2)
#define QASBDEBUG
QVariant operator*(const QVariant &arg1, double multiplier)
double operator/(const QVariant &arg1, const QVariant &arg2)
QVariant operator+(const QVariant &arg1, const QVariant &arg2)
QT_REQUIRE_CONFIG(spinbox)