QGIS API Documentation 4.1.0-Master (376402f9aeb)
Loading...
Searching...
No Matches
qgshistogramwidget.h
Go to the documentation of this file.
1/***************************************************************************
2 qgshistogramwidget.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 QGSHISTOGRAMWIDGET_H
18#define QGSHISTOGRAMWIDGET_H
19
20#include "ui_qgshistogramwidgetbase.h"
21
22#include "qgis_gui.h"
23#include "qgis_sip.h"
25#include "qgshistogram.h"
27
28#include <QBrush>
29#include <QPen>
30
32class QgsVectorLayer;
34class QwtPlotPicker;
35class QwtPlotMarker;
36class QwtPlot;
37class HistogramItem;
38class QwtPlotHistogram;
39
40// fix for qwt5/qwt6 QwtDoublePoint vs. QPointF
41typedef QPointF QwtDoublePoint;
42
49
50class GUI_EXPORT QgsHistogramWidget : public QWidget, private Ui::QgsHistogramWidgetBase
51{
52 Q_OBJECT
53
54 public:
62 QgsHistogramWidget( QWidget *parent SIP_TRANSFERTHIS = nullptr, QgsVectorLayer *layer = nullptr, const QString &fieldOrExp = QString() );
63
64 ~QgsHistogramWidget() override;
65
68
74 QgsVectorLayer *layer() { return mVectorLayer; }
75
82 QString sourceFieldExp() const { return mSourceFieldExp; }
83
92 void setPen( const QPen &pen ) { mPen = pen; }
93
99 QPen pen() const { return mPen; }
100
108 void setBrush( const QBrush &brush ) { mBrush = brush; }
109
115 QBrush brush() const { return mBrush; }
116
123 void setGraduatedRanges( const QgsRangeList &ranges );
124
132
138 QString xAxisTitle() const { return mXAxisTitle; }
139
146 void setXAxisTitle( const QString &title ) { mXAxisTitle = title; }
147
153 QString yAxisTitle() const { return mYAxisTitle; }
154
161 void setYAxisTitle( const QString &title ) { mYAxisTitle = title; }
162
163 public slots:
164
168 void refreshValues();
169
174 void refresh();
175
181 void setLayer( QgsVectorLayer *layer );
182
188 void setSourceFieldExp( const QString &fieldOrExp );
189
190 protected:
194 virtual void drawHistogram();
195
196 QwtPlot *mPlot = nullptr;
198 QList<QwtPlotMarker *> mRangeMarkers;
199
200 private:
201 QgsVectorLayer *mVectorLayer = nullptr;
202 QString mSourceFieldExp;
203 QList<double> mValues;
205 QgsHistogram mHistogram;
206 QVector<QColor> mHistoColors;
207 QPen mPen;
208 QBrush mBrush;
209 QPen mMeanPen;
210 QPen mStdevPen;
211 QPen mGridPen;
212 QString mXAxisTitle;
213 QString mYAxisTitle;
214
215 void clearHistogram();
216
217 QwtPlotHistogram *createPlotHistogram( const QString &title, const QBrush &brush, const QPen &pen = Qt::NoPen ) const;
218};
219
220#endif //QGSHISTOGRAMWIDGET_H
A vector feature renderer which uses numeric attributes to classify features into different ranges.
QList< QwtPlotMarker * > mRangeMarkers
static const QgsSettingsEntryBool * settingsHistogramShowStdev
QString xAxisTitle() const
Returns the title for the histogram's x-axis.
QgsRangeList graduatedRanges() const
Returns the graduated ranges associated with the histogram.
QPen pen() const
Returns the pen used when drawing histogram bars.
void setYAxisTitle(const QString &title)
Sets the title for the histogram's y-axis.
static const QgsSettingsEntryBool * settingsHistogramShowMean
QgsHistogramWidget(QWidget *parent=nullptr, QgsVectorLayer *layer=nullptr, const QString &fieldOrExp=QString())
QgsHistogramWidget constructor.
void setPen(const QPen &pen)
Sets the pen to use when drawing histogram bars.
QString sourceFieldExp() const
Returns the source field name or expression used to calculate values displayed in the histogram.
void setXAxisTitle(const QString &title)
Sets the title for the histogram's x-axis.
void setBrush(const QBrush &brush)
Sets the brush used for drawing histogram bars.
QBrush brush() const
Returns the brush used when drawing histogram bars.
QgsVectorLayer * layer()
Returns the layer currently associated with the widget.
QString yAxisTitle() const
Returns the title for the histogram's y-axis.
Calculator for a numeric histogram from a list of values.
A boolean settings entry.
Calculator for summary statistics for a list of doubles.
Represents a vector layer which manages a vector based dataset.
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:52
#define SIP_SKIP
Definition qgis_sip.h:133
QPointF QwtDoublePoint
QList< QgsRendererRange > QgsRangeList