QGIS API Documentation 3.29.0-Master (ade4f0cf0f)
qgsgraduatedhistogramwidget.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsgraduatedhistogramwidget.h
3 -----------------------------
4 begin : May 2015
5 copyright : (C) 2015 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17#ifndef QGSGRADUATEDHISTOGRAMWIDGET_H
18#define QGSGRADUATEDHISTOGRAMWIDGET_H
19
20#include "qgshistogramwidget.h"
21#include "qgis_sip.h"
22#include "qgis_gui.h"
23
24class QwtPlotPicker;
25class QgsGraduatedHistogramEventFilter;
26
37{
38 Q_OBJECT
39
40 public:
41
46 QgsGraduatedHistogramWidget( QWidget *parent SIP_TRANSFERTHIS = nullptr );
47
53 void setRenderer( QgsGraduatedSymbolRenderer *renderer );
54
55 signals:
56
62 void rangesModified( bool rangesAdded );
63
64 protected:
65
66 void drawHistogram() override;
67
68 private slots:
69
70 void mousePress( double value );
71 void mouseRelease( double value );
72
73 private:
74
75 QgsGraduatedSymbolRenderer *mRenderer = nullptr;
76 QwtPlotPicker *mHistoPicker = nullptr;
77 QgsGraduatedHistogramEventFilter *mFilter = nullptr;
78 double mPressedValue = 0;
79
80 void findClosestRange( double value, int &closestRangeIndex, int &pixelDistance ) const;
81
82 QwtPlotHistogram *createPlotHistogram( const QString &title, const QColor &color ) const;
83
84};
85
86
87#ifndef SIP_RUN
88//
89// NOTE:
90// For private use by QgsGraduatedHistogramWidget only,
91// not part of stable api or exposed to Python bindings
92//
94class GUI_EXPORT QgsGraduatedHistogramEventFilter: public QObject
95{
96 Q_OBJECT
97
98 public:
99
100 QgsGraduatedHistogramEventFilter( QwtPlot *plot );
101
102 bool eventFilter( QObject *object, QEvent *event ) override;
103
104 signals:
105
106 void mousePress( double );
107 void mouseRelease( double );
108
109 private:
110
111 QwtPlot *mPlot = nullptr;
112 double posToValue( QPointF point ) const;
113};
115#endif
116
117#endif //QGSGRADUATEDHISTOGRAMWIDGET_H
Graphical histogram for displaying distribution of field values and editing range breaks for a QgsGra...
void rangesModified(bool rangesAdded)
Emitted when the user modifies the graduated ranges using the histogram widget.
Graphical histogram for displaying distributions of field values.
virtual void drawHistogram()
Updates and redraws the histogram.
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53