Qwt Polar User's Guide 1.1.1

- Main Page
- Related Pages
- Classes

All Classes Functions Typedefs Enumerations Enumerator Pages
qwt_polar_plot.h
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
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 1
11
12 #include "qwt_polar_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
20 class QwtRoundScaleDraw;
21 class QwtScaleEngine;
22 class QwtScaleDiv;
23 class QwtTextLabel;
24 class QwtPolarCanvas;
25 class QwtPolarLayout;
26 class QwtAbstractLegend;
27
46 class QWT_POLAR_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:
59 enum LegendPosition
60 {
62 LeftLegend,
63
65 RightLegend,
66
68 BottomLegend,
69
71 TopLegend,
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
183 void legendDataChanged( const QVariant &itemInfo,
184 const QList<QwtLegendData> &data );
185
190 void layoutChanged();
191
192 public Q_SLOTS:
193 virtual void replot();
194 void autoRefresh();
195 void setAzimuthOrigin( double );
196
197 protected:
198 virtual bool event( QEvent * );
199 virtual void resizeEvent( QResizeEvent * );
200
201 virtual void updateLayout();
202
203 virtual void drawItems( QPainter *painter,
204 const QwtScaleMap &radialMap, const QwtScaleMap &azimuthMap,
205 const QPointF &pole, double radius,
206 const QRectF &canvasRect ) const;
207
208 private:
209 friend class QwtPolarItem;
210 void attachItem( QwtPolarItem *, bool );
211
212 void initPlot( const QwtText & );
213
214 class ScaleData;
215 class PrivateData;
216 PrivateData *d_data;
217 };
218
219 #endif
QwtPolarPlot::BottomLegend
The legend will be below the canvas.
Definition: qwt_polar_plot.h:68
QwtPolarItemDict
A dictionary for polar plot items.
Definition: qwt_polar_itemdict.h:32
QwtPolarPlot::LeftLegend
The legend will be left from the canvas.
Definition: qwt_polar_plot.h:62
QwtPolarLayout
Layout class for QwtPolarPlot.
Definition: qwt_polar_layout.h:24
QwtPolarPlot::TopLegend
The legend will be between canvas and title.
Definition: qwt_polar_plot.h:71
QwtPolarItem
Base class for items on a polar plot.
Definition: qwt_polar_item.h:37
QwtPolarCanvas
Canvas of a QwtPolarPlot.
Definition: qwt_polar_canvas.h:27
QwtPolarPlot::LegendPosition
LegendPosition
Definition: qwt_polar_plot.h:59
QwtPolarPlot
A plotting widget, displaying a polar coordinate system.
Definition: qwt_polar_plot.h:46
QwtPolarPlot::RightLegend
The legend will be right from the canvas.
Definition: qwt_polar_plot.h:65