QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
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
63 {
67 };
68
73 explicit QgsDoubleSpinBox( QWidget *parent SIP_TRANSFERTHIS = nullptr );
74
81 void setShowClearButton( bool showClearButton );
82
87 bool showClearButton() const {return mShowClearButton;}
88
95 void setExpressionsEnabled( bool enabled );
96
103 bool expressionsEnabled() const {return mExpressionsEnabled;}
104
106 void clear() override;
107
114 void setClearValue( double customValue, const QString &clearValueText = QString() );
115
121 void setClearValueMode( ClearValueMode mode, const QString &clearValueText = QString() );
122
127 double clearValue() const;
128
133 void setLineEditAlignment( Qt::Alignment alignment );
134
140 void setSpecialValueText( const QString &txt );
141
142 double valueFromText( const QString &text ) const override;
143 QValidator::State validate( QString &input, int &pos ) const override;
144 void paintEvent( QPaintEvent *e ) override;
145
146 protected:
147 void changeEvent( QEvent *event ) override;
148 void wheelEvent( QWheelEvent *event ) override;
149 // This is required because private implementation of
150 // QAbstractSpinBoxPrivate may trigger a second
151 // undesired event from the auto-repeat mouse timer
152 void timerEvent( QTimerEvent *event ) override;
153
154 private slots:
155 void changed( double value );
156
157 private:
158 int frameWidth() const;
159 bool shouldShowClearForValue( double value ) const;
160
161 QgsSpinBoxLineEdit *mLineEdit = nullptr;
162
163 bool mShowClearButton = true;
164 ClearValueMode mClearValueMode = MinimumValue;
165 double mCustomClearValue = 0.0;
166
167 bool mExpressionsEnabled = true;
168
169 QString stripped( const QString &originalText ) const;
170
171 friend class TestQgsRangeWidgetWrapper;
172};
173
174#endif // QGSDOUBLESPINBOX_H
The QgsSpinBox is a spin box with a clear button that will set the value to the defined clear value.
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()
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:186
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
#define SIP_END
Definition: qgis_sip.h:203