QGIS API Documentation 3.41.0-Master (3440c17df1d)
Loading...
Searching...
No Matches
qgsdoublespinbox.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsdoublespinbox.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 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
42class GUI_EXPORT QgsDoubleSpinBox : public QDoubleSpinBox
43{
44
45#ifdef SIP_RUN
47 if ( qobject_cast<QgsDoubleSpinBox *>( sipCpp ) )
48 sipType = sipType_QgsDoubleSpinBox;
49 else
50 sipType = NULL;
52#endif
53
54 Q_OBJECT
55 Q_PROPERTY( bool showClearButton READ showClearButton WRITE setShowClearButton )
56 Q_PROPERTY( bool clearValue READ clearValue WRITE setClearValue )
57 Q_PROPERTY( bool expressionsEnabled READ expressionsEnabled WRITE setExpressionsEnabled )
58
59 public:
60
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
153 signals:
154
160
165 void textEdited( const QString &text );
166
167 protected:
168 void changeEvent( QEvent *event ) override;
169 void wheelEvent( QWheelEvent *event ) override;
170 // This is required because private implementation of
171 // QAbstractSpinBoxPrivate may trigger a second
172 // undesired event from the auto-repeat mouse timer
173 void timerEvent( QTimerEvent *event ) override;
174
175 private slots:
176 void changed( double value );
177
178 private:
179 int frameWidth() const;
180 bool shouldShowClearForValue( double value ) const;
181
182 QgsSpinBoxLineEdit *mLineEdit = nullptr;
183
184 bool mShowClearButton = true;
185 ClearValueMode mClearValueMode = MinimumValue;
186 double mCustomClearValue = 0.0;
187
188 bool mExpressionsEnabled = true;
189
190 QString stripped( const QString &originalText ) const;
191
192 friend class TestQgsRangeWidgetWrapper;
193};
194
195#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.
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