QGIS API Documentation 3.43.0-Master (c67cf405802)
qgsdoublespinbox.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsdoublespinbox.h
3 --------------------------------------
4 Date : 09.2014
5 Copyright : (C) 2014 Denis Rouzaud
6 Email : denis.rouzaud@gmail.com
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 QGSDOUBLESPINBOX_H
17#define QGSDOUBLESPINBOX_H
18
19#include <QDoubleSpinBox>
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 that for some reason
29// doesn't add this include to the file where the code from
30// ConvertToSubClassCode goes.
31#include <qgsdoublespinbox.h>
32//%End
33#endif
34
35
44class GUI_EXPORT QgsDoubleSpinBox : public QDoubleSpinBox
45{
46#ifdef SIP_RUN
48 if ( qobject_cast<QgsDoubleSpinBox *>( sipCpp ) )
49 sipType = sipType_QgsDoubleSpinBox;
50 else
51 sipType = NULL;
53#endif
54
55 Q_OBJECT
56 Q_PROPERTY( bool showClearButton READ showClearButton WRITE setShowClearButton )
57 Q_PROPERTY( bool clearValue READ clearValue WRITE setClearValue )
58 Q_PROPERTY( bool expressionsEnabled READ expressionsEnabled WRITE setExpressionsEnabled )
59
60 public:
68
73 explicit QgsDoubleSpinBox( QWidget *parent SIP_TRANSFERTHIS = nullptr );
74
81 void setShowClearButton( bool showClearButton );
82
87 bool showClearButton() const { return mShowClearButton; }
88
94 void setExpressionsEnabled( bool enabled );
95
101 bool expressionsEnabled() const { return mExpressionsEnabled; }
102
104 void clear() override;
105
112 void setClearValue( double customValue, const QString &clearValueText = QString() );
113
119 void setClearValueMode( ClearValueMode mode, const QString &clearValueText = QString() );
120
125 double clearValue() const;
126
133 bool isCleared() const;
134
139 void setLineEditAlignment( Qt::Alignment alignment );
140
146 void setSpecialValueText( const QString &txt );
147
148 double valueFromText( const QString &text ) const override;
149 QValidator::State validate( QString &input, int &pos ) const override;
150 void paintEvent( QPaintEvent *e ) override;
151 void stepBy( int steps ) override;
152
161 int editingTimeoutInterval() const;
162
163 public slots:
164
174 void setEditingTimeoutInterval( int timeout );
175
176 signals:
177
183
188 void textEdited( const QString &text );
189
203 void editingTimeout( double value );
204
205 protected:
206 void changeEvent( QEvent *event ) override;
207 void wheelEvent( QWheelEvent *event ) override;
208 void focusOutEvent( QFocusEvent *event ) override;
209 // This is required because private implementation of
210 // QAbstractSpinBoxPrivate may trigger a second
211 // undesired event from the auto-repeat mouse timer
212 void timerEvent( QTimerEvent *event ) override;
213
214 private slots:
215 void changed( double value );
216 void onLastEditTimeout();
217
218 private:
219 int frameWidth() const;
220 bool shouldShowClearForValue( double value ) const;
221
222 QgsSpinBoxLineEdit *mLineEdit = nullptr;
223
224 bool mShowClearButton = true;
225 ClearValueMode mClearValueMode = MinimumValue;
226 double mCustomClearValue = 0.0;
227
228 bool mExpressionsEnabled = true;
229
230 QTimer *mLastEditTimer = nullptr;
231 double mLastEditTimeoutValue = std::numeric_limits<double>::quiet_NaN();
232
233 QString stripped( const QString &originalText ) const;
234
235 friend class TestQgsRangeWidgetWrapper;
236};
237
238#endif // QGSDOUBLESPINBOX_H
The QgsSpinBox is a spin box with a clear button that will set the value to the defined clear value.
void textEdited(const QString &text)
Emitted when the the value has been manually edited via line edit.
void editingTimeout(double value)
Emitted when either:
bool showClearButton() const
Returns whether the widget is showing a clear button.
ClearValueMode
Behavior when widget is cleared.
@ MaximumValue
Reset value to maximum()
@ CustomValue
Reset value to custom value (see setClearValue() )
@ MinimumValue
Reset value to minimum()
void returnPressed()
Emitted when the Return or Enter key is used in the line edit.
bool expressionsEnabled() const
Returns whether the widget will allow entry of simple expressions, which are evaluated and then disca...
#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