Qwt User's Guide 6.3.0
Loading...
Searching...
No Matches
qwt_polar_plot.h
1/******************************************************************************
2 * QwtPolar Widget Library
3 * Copyright (C) 2008 Uwe Rathmann
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the Qwt License, Version 1.0
7 *****************************************************************************/
8
9#ifndef QWT_POLAR_PLOT_H
10#define QWT_POLAR_PLOT_H
11
12#include "qwt_global.h"
13#include "qwt_polar.h"
14#include "qwt_polar_itemdict.h"
15#include "qwt_interval.h"
16#include "qwt_scale_map.h"
17#include "qwt_point_polar.h"
18#include <qframe.h>
19
21class QwtScaleEngine;
22class QwtScaleDiv;
23class QwtTextLabel;
24class QwtPolarCanvas;
25class QwtPolarLayout;
27
46class QWT_EXPORT QwtPolarPlot : public QFrame, public QwtPolarItemDict
47{
48 Q_OBJECT
49
50 Q_PROPERTY( QBrush plotBackground READ plotBackground WRITE setPlotBackground )
51 Q_PROPERTY( double azimuthOrigin READ azimuthOrigin WRITE setAzimuthOrigin )
52
53
54 public:
60 {
63
66
69
72
81 ExternalLegend
82 };
83
84 explicit QwtPolarPlot( QWidget* parent = NULL );
85 QwtPolarPlot( const QwtText& title, QWidget* parent = NULL );
86
87 virtual ~QwtPolarPlot();
88
89 void setTitle( const QString& );
90 void setTitle( const QwtText& );
91
92 QwtText title() const;
93
94 QwtTextLabel* titleLabel();
95 const QwtTextLabel* titleLabel() const;
96
97 void setAutoReplot( bool tf = true );
98 bool autoReplot() const;
99
100 void setAutoScale( int scaleId );
101 bool hasAutoScale( int scaleId ) const;
102
103 void setScaleMaxMinor( int scaleId, int maxMinor );
104 int scaleMaxMinor( int scaleId ) const;
105
106 int scaleMaxMajor( int scaleId ) const;
107 void setScaleMaxMajor( int scaleId, int maxMajor );
108
109 QwtScaleEngine* scaleEngine( int scaleId );
110 const QwtScaleEngine* scaleEngine( int scaleId ) const;
111 void setScaleEngine( int scaleId, QwtScaleEngine* );
112
113 void setScale( int scaleId, double min, double max, double step = 0 );
114
115 void setScaleDiv( int scaleId, const QwtScaleDiv& );
116 const QwtScaleDiv* scaleDiv( int scaleId ) const;
117 QwtScaleDiv* scaleDiv( int scaleId );
118
119 QwtScaleMap scaleMap( int scaleId, double radius ) const;
120 QwtScaleMap scaleMap( int scaleId ) const;
121
122 void updateScale( int scaleId );
123
124 double azimuthOrigin() const;
125
126 void zoom( const QwtPointPolar&, double factor );
127 void unzoom();
128
129 QwtPointPolar zoomPos() const;
130 double zoomFactor() const;
131
132 // Canvas
133
134 QwtPolarCanvas* canvas();
135 const QwtPolarCanvas* canvas() const;
136
137 void setPlotBackground ( const QBrush& c );
138 const QBrush& plotBackground() const;
139
140 virtual void drawCanvas( QPainter*, const QRectF& ) const;
141
142 // Legend
143
144 void insertLegend( QwtAbstractLegend*,
145 LegendPosition = RightLegend, double ratio = -1.0 );
146
147 QwtAbstractLegend* legend();
148 const QwtAbstractLegend* legend() const;
149
150 void updateLegend();
151 void updateLegend( const QwtPolarItem* );
152
153 // Layout
154 QwtPolarLayout* plotLayout();
155 const QwtPolarLayout* plotLayout() const;
156
157 QwtInterval visibleInterval() const;
158 QRectF plotRect() const;
159 QRectF plotRect( const QRectF& ) const;
160
161 int plotMarginHint() const;
162
163 virtual QVariant itemToInfo( QwtPolarItem* ) const;
164 virtual QwtPolarItem* infoToItem( const QVariant& ) const;
165
166 Q_SIGNALS:
173 void itemAttached( QwtPolarItem* plotItem, bool on );
174
184 void legendDataChanged( const QVariant& itemInfo,
185 const QList< QwtLegendData >& data );
186
192
193 public Q_SLOTS:
194 virtual void replot();
195 void autoRefresh();
196 void setAzimuthOrigin( double );
197
198 protected:
199 virtual bool event( QEvent* ) QWT_OVERRIDE;
200 virtual void resizeEvent( QResizeEvent* ) QWT_OVERRIDE;
201
202 virtual void updateLayout();
203
204 virtual void drawItems( QPainter* painter,
205 const QwtScaleMap& radialMap, const QwtScaleMap& azimuthMap,
206 const QPointF& pole, double radius,
207 const QRectF& canvasRect ) const;
208
209 private:
210 friend class QwtPolarItem;
211 void attachItem( QwtPolarItem*, bool );
212
213 void initPlot( const QwtText& );
214
215 class PrivateData;
216 PrivateData* m_data;
217};
218
219#endif
Abstract base class for legend widgets.
A class representing an interval.
A point in polar coordinates.
Canvas of a QwtPolarPlot.
A dictionary for polar plot items.
Base class for items on a polar plot.
Layout class for QwtPolarPlot.
A plotting widget, displaying a polar coordinate system.
void layoutChanged()
void itemAttached(QwtPolarItem *plotItem, bool on)
void legendDataChanged(const QVariant &itemInfo, const QList< QwtLegendData > &data)
@ BottomLegend
The legend will be below the canvas.
@ LeftLegend
The legend will be left from the canvas.
@ TopLegend
The legend will be between canvas and title.
@ RightLegend
The legend will be right from the canvas.
A class for drawing round scales.
A class representing a scale division.
Base class for scale engines.
A scale map.
A class representing a text.
Definition qwt_text.h:52
A Widget which displays a QwtText.