QGIS API Documentation 3.41.0-Master (cea29feecf2)
Loading...
Searching...
No Matches
qgsspinbox.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsspinbox.h
3 --------------------------------------
4 Date : 09.2014
5 Copyright : (C) 2014 Denis Rouzaud
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSSPINBOX_H
17#define QGSSPINBOX_H
18
19#include <QSpinBox>
20#include "qgis_sip.h"
21#include "qgis_gui.h"
22
23class QgsSpinBoxLineEdit;
24
25
26#ifdef SIP_RUN
27//%ModuleHeaderCode
28// fix to allow compilation with sip 4.7 that for some reason
29// doesn't add this include to the file where the code from
30// ConvertToSubClassCode goes.
31#include <qgsspinbox.h>
32//%End
33#endif
34
35
42class GUI_EXPORT QgsSpinBox : public QSpinBox
43{
44#ifdef SIP_RUN
46 if ( qobject_cast<QgsSpinBox *>( sipCpp ) )
47 sipType = sipType_QgsSpinBox;
48 else
49 sipType = NULL;
51#endif
52
53 Q_OBJECT
54 Q_PROPERTY( bool showClearButton READ showClearButton WRITE setShowClearButton )
55 Q_PROPERTY( bool clearValue READ clearValue WRITE setClearValue )
56 Q_PROPERTY( bool expressionsEnabled READ expressionsEnabled WRITE setExpressionsEnabled )
57
58 public:
66
71 explicit QgsSpinBox( QWidget *parent SIP_TRANSFERTHIS = nullptr );
72
79 void setShowClearButton( bool showClearButton );
80
85 bool showClearButton() const { return mShowClearButton; }
86
92 void setExpressionsEnabled( bool enabled );
93
99 bool expressionsEnabled() const { return mExpressionsEnabled; }
100
102 void clear() override;
103
110 void setClearValue( int customValue, const QString &clearValueText = QString() );
111
117 void setClearValueMode( ClearValueMode mode, const QString &clearValueText = QString() );
118
123 int clearValue() const;
124
129 void setLineEditAlignment( Qt::Alignment alignment );
130
136 void setSpecialValueText( const QString &txt );
137
138 int valueFromText( const QString &text ) const override;
139 QValidator::State validate( QString &input, int &pos ) const override;
140 void stepBy( int steps ) override;
141
150 int editingTimeoutInterval() const;
151
152 public slots:
153
163 void setEditingTimeoutInterval( int timeout );
164
165 signals:
166
172
177 void textEdited( const QString &text );
178
192 void editingTimeout( int value );
193
194 protected:
195 void changeEvent( QEvent *event ) override;
196 void paintEvent( QPaintEvent *event ) override;
197 void wheelEvent( QWheelEvent *event ) override;
198 // This is required because private implementation of
199 // QAbstractSpinBoxPrivate may trigger a second
200 // undesired event from the auto-repeat mouse timer
201 void timerEvent( QTimerEvent *event ) override;
202 void focusOutEvent( QFocusEvent *event ) override;
203
204 private slots:
205 void changed( int value );
206 void onLastEditTimeout();
207
208 private:
209 int frameWidth() const;
210 bool shouldShowClearForValue( int value ) const;
211
212 QgsSpinBoxLineEdit *mLineEdit = nullptr;
213
214 bool mShowClearButton = true;
215 ClearValueMode mClearValueMode = MinimumValue;
216 int mCustomClearValue = 0;
217
218 bool mExpressionsEnabled = true;
219
220 QTimer *mLastEditTimer = nullptr;
221 bool mHasEmittedEditTimeout = false;
222 int mLastEditTimeoutValue = 0;
223
224 QString stripped( const QString &originalText ) const;
225
226 friend class TestQgsRangeWidgetWrapper;
227};
228
229#endif // QGSSPINBOX_H
The QgsSpinBox is a spin box with a clear button that will set the value to the defined clear value.
Definition qgsspinbox.h:43
void returnPressed()
Emitted when the Return or Enter key is used in the line edit.
ClearValueMode
Behavior when widget is cleared.
Definition qgsspinbox.h:61
@ MaximumValue
Reset value to maximum()
Definition qgsspinbox.h:63
@ MinimumValue
Reset value to minimum()
Definition qgsspinbox.h:62
@ CustomValue
Reset value to custom value (see setClearValue() )
Definition qgsspinbox.h:64
bool showClearButton() const
Returns whether the widget is showing a clear button.
Definition qgsspinbox.h:85
void editingTimeout(int value)
Emitted when either:
bool expressionsEnabled() const
Returns whether the widget will allow entry of simple expressions, which are evaluated and then disca...
Definition qgsspinbox.h:99
void textEdited(const QString &text)
Emitted when the the value has been manually edited via line edit.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
Definition qgis_sip.h:191
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:53
#define SIP_END
Definition qgis_sip.h:208