GNU Radio Manual and C++ API Reference 3.10.5.1
The Free & Open Software Radio Ecosystem
DisplayPlot.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2008-2012 Free Software Foundation, Inc.
4 *
5 * This file is part of GNU Radio
6 *
7 * SPDX-License-Identifier: GPL-3.0-or-later
8 *
9 */
10
11#ifndef DOMAIN_DISPLAY_PLOT_H
12#define DOMAIN_DISPLAY_PLOT_H
13
15#include <qwt_legend.h>
16#include <qwt_painter.h>
17#include <qwt_plot.h>
18#include <qwt_plot_canvas.h>
19#include <qwt_plot_curve.h>
20#include <qwt_plot_magnifier.h>
21#include <qwt_plot_marker.h>
22#include <qwt_plot_panner.h>
23#include <qwt_plot_zoomer.h>
24#include <qwt_scale_engine.h>
25#include <qwt_scale_widget.h>
26#include <qwt_symbol.h>
27#include <cstdint>
28#include <cstdio>
29#include <vector>
30
31typedef QList<QColor> QColorList;
32Q_DECLARE_METATYPE(QColorList)
33
34#include <qwt_legend_data.h>
35#include <qwt_legend_label.h>
36
37/*!
38 * \brief QWidget base plot to build QTGUI plotting tools.
39 * \ingroup qtgui_blk
40 */
41class DisplayPlot : public QwtPlot
42{
43 Q_OBJECT
44
45 Q_PROPERTY(QColor line_color1 READ getLineColor1 WRITE setLineColor1)
46 Q_PROPERTY(QColor line_color2 READ getLineColor2 WRITE setLineColor2)
47 Q_PROPERTY(QColor line_color3 READ getLineColor3 WRITE setLineColor3)
48 Q_PROPERTY(QColor line_color4 READ getLineColor4 WRITE setLineColor4)
49 Q_PROPERTY(QColor line_color5 READ getLineColor5 WRITE setLineColor5)
50 Q_PROPERTY(QColor line_color6 READ getLineColor6 WRITE setLineColor6)
51 Q_PROPERTY(QColor line_color7 READ getLineColor7 WRITE setLineColor7)
52 Q_PROPERTY(QColor line_color8 READ getLineColor8 WRITE setLineColor8)
53 Q_PROPERTY(QColor line_color9 READ getLineColor9 WRITE setLineColor9)
54
55 Q_PROPERTY(int line_width1 READ getLineWidth1 WRITE setLineWidth1)
56 Q_PROPERTY(int line_width2 READ getLineWidth2 WRITE setLineWidth2)
57 Q_PROPERTY(int line_width3 READ getLineWidth3 WRITE setLineWidth3)
58 Q_PROPERTY(int line_width4 READ getLineWidth4 WRITE setLineWidth4)
59 Q_PROPERTY(int line_width5 READ getLineWidth5 WRITE setLineWidth5)
60 Q_PROPERTY(int line_width6 READ getLineWidth6 WRITE setLineWidth6)
61 Q_PROPERTY(int line_width7 READ getLineWidth7 WRITE setLineWidth7)
62 Q_PROPERTY(int line_width8 READ getLineWidth8 WRITE setLineWidth8)
63 Q_PROPERTY(int line_width9 READ getLineWidth9 WRITE setLineWidth9)
64
65 Q_PROPERTY(Qt::PenStyle line_style1 READ getLineStyle1 WRITE setLineStyle1)
66 Q_PROPERTY(Qt::PenStyle line_style2 READ getLineStyle2 WRITE setLineStyle2)
67 Q_PROPERTY(Qt::PenStyle line_style3 READ getLineStyle3 WRITE setLineStyle3)
68 Q_PROPERTY(Qt::PenStyle line_style4 READ getLineStyle4 WRITE setLineStyle4)
69 Q_PROPERTY(Qt::PenStyle line_style5 READ getLineStyle5 WRITE setLineStyle5)
70 Q_PROPERTY(Qt::PenStyle line_style6 READ getLineStyle6 WRITE setLineStyle6)
71 Q_PROPERTY(Qt::PenStyle line_style7 READ getLineStyle7 WRITE setLineStyle7)
72 Q_PROPERTY(Qt::PenStyle line_style8 READ getLineStyle8 WRITE setLineStyle8)
73 Q_PROPERTY(Qt::PenStyle line_style9 READ getLineStyle9 WRITE setLineStyle9)
74
75 typedef QwtSymbol::Style QwtSymbolStyle;
76
77 Q_ENUMS(QwtSymbolStyle)
78 Q_PROPERTY(QwtSymbolStyle line_marker1 READ getLineMarker1 WRITE setLineMarker1)
79 Q_PROPERTY(QwtSymbolStyle line_marker2 READ getLineMarker2 WRITE setLineMarker2)
80 Q_PROPERTY(QwtSymbolStyle line_marker3 READ getLineMarker3 WRITE setLineMarker3)
81 Q_PROPERTY(QwtSymbolStyle line_marker4 READ getLineMarker4 WRITE setLineMarker4)
82 Q_PROPERTY(QwtSymbolStyle line_marker5 READ getLineMarker5 WRITE setLineMarker5)
83 Q_PROPERTY(QwtSymbolStyle line_marker6 READ getLineMarker6 WRITE setLineMarker6)
84 Q_PROPERTY(QwtSymbolStyle line_marker7 READ getLineMarker7 WRITE setLineMarker7)
85 Q_PROPERTY(QwtSymbolStyle line_marker8 READ getLineMarker8 WRITE setLineMarker8)
86 Q_PROPERTY(QwtSymbolStyle line_marker9 READ getLineMarker9 WRITE setLineMarker9)
87
88 Q_PROPERTY(int marker_alpha1 READ getMarkerAlpha1 WRITE setMarkerAlpha1)
89 Q_PROPERTY(int marker_alpha2 READ getMarkerAlpha2 WRITE setMarkerAlpha2)
90 Q_PROPERTY(int marker_alpha3 READ getMarkerAlpha3 WRITE setMarkerAlpha3)
91 Q_PROPERTY(int marker_alpha4 READ getMarkerAlpha4 WRITE setMarkerAlpha4)
92 Q_PROPERTY(int marker_alpha5 READ getMarkerAlpha5 WRITE setMarkerAlpha5)
93 Q_PROPERTY(int marker_alpha6 READ getMarkerAlpha6 WRITE setMarkerAlpha6)
94 Q_PROPERTY(int marker_alpha7 READ getMarkerAlpha7 WRITE setMarkerAlpha7)
95 Q_PROPERTY(int marker_alpha8 READ getMarkerAlpha8 WRITE setMarkerAlpha8)
96 Q_PROPERTY(int marker_alpha9 READ getMarkerAlpha9 WRITE setMarkerAlpha9)
97
98 Q_PROPERTY(QColor zoomer_color READ getZoomerColor WRITE setZoomerColor)
99 Q_PROPERTY(QColor palette_color READ getPaletteColor WRITE setPaletteColor)
100 Q_PROPERTY(
102 Q_PROPERTY(
104 Q_PROPERTY(
106
107public:
108 DisplayPlot(int nplots, QWidget*);
109 ~DisplayPlot() override;
110
111 void replot() override = 0;
112
113 const QColor getLineColor1() const;
114 const QColor getLineColor2() const;
115 const QColor getLineColor3() const;
116 const QColor getLineColor4() const;
117 const QColor getLineColor5() const;
118 const QColor getLineColor6() const;
119 const QColor getLineColor7() const;
120 const QColor getLineColor8() const;
121 const QColor getLineColor9() const;
122
123 int getLineWidth1() const;
124 int getLineWidth2() const;
125 int getLineWidth3() const;
126 int getLineWidth4() const;
127 int getLineWidth5() const;
128 int getLineWidth6() const;
129 int getLineWidth7() const;
130 int getLineWidth8() const;
131 int getLineWidth9() const;
132
133 const Qt::PenStyle getLineStyle1() const;
134 const Qt::PenStyle getLineStyle2() const;
135 const Qt::PenStyle getLineStyle3() const;
136 const Qt::PenStyle getLineStyle4() const;
137 const Qt::PenStyle getLineStyle5() const;
138 const Qt::PenStyle getLineStyle6() const;
139 const Qt::PenStyle getLineStyle7() const;
140 const Qt::PenStyle getLineStyle8() const;
141 const Qt::PenStyle getLineStyle9() const;
142
143 const QwtSymbol::Style getLineMarker1() const;
144 const QwtSymbol::Style getLineMarker2() const;
145 const QwtSymbol::Style getLineMarker3() const;
146 const QwtSymbol::Style getLineMarker4() const;
147 const QwtSymbol::Style getLineMarker5() const;
148 const QwtSymbol::Style getLineMarker6() const;
149 const QwtSymbol::Style getLineMarker7() const;
150 const QwtSymbol::Style getLineMarker8() const;
151 const QwtSymbol::Style getLineMarker9() const;
152
153 int getMarkerAlpha1() const;
154 int getMarkerAlpha2() const;
155 int getMarkerAlpha3() const;
156 int getMarkerAlpha4() const;
157 int getMarkerAlpha5() const;
158 int getMarkerAlpha6() const;
159 int getMarkerAlpha7() const;
160 int getMarkerAlpha8() const;
161 int getMarkerAlpha9() const;
162
163 QColor getZoomerColor() const;
164 QColor getPaletteColor() const;
165 int getAxisLabelFontSize(int axisId) const;
169
170 // Make sure to create your won PlotNewData method in the derived
171 // class:
172 // void PlotNewData(...);
173
174public slots:
175 virtual void disableLegend();
176 virtual void setAxisLabels(bool en);
177 virtual void setYaxis(double min, double max);
178 virtual void setXaxis(double min, double max);
179 virtual void setLineLabel(unsigned int which, QString label);
180 virtual QString getLineLabel(unsigned int which);
181 virtual void setLineColor(unsigned int which, QColor color);
182 virtual QColor getLineColor(unsigned int which) const;
183 virtual void setLineWidth(unsigned int which, int width);
184 virtual int getLineWidth(unsigned int which) const;
185 virtual void setLineStyle(unsigned int which, Qt::PenStyle style);
186 virtual const Qt::PenStyle getLineStyle(unsigned int which) const;
187 virtual void setLineMarker(unsigned int which, QwtSymbol::Style marker);
188 virtual const QwtSymbol::Style getLineMarker(unsigned int which) const;
189 virtual void setMarkerAlpha(unsigned int which, int alpha);
190 virtual int getMarkerAlpha(unsigned int which) const;
191
192 // Need a function for each curve for setting via stylesheet.
193 // Can't use preprocessor directives because we're inside a Q_OBJECT.
194 void setLineColor1(QColor);
195 void setLineColor2(QColor);
196 void setLineColor3(QColor);
197 void setLineColor4(QColor);
198 void setLineColor5(QColor);
199 void setLineColor6(QColor);
200 void setLineColor7(QColor);
201 void setLineColor8(QColor);
202 void setLineColor9(QColor);
203
204 void setLineWidth1(int);
205 void setLineWidth2(int);
206 void setLineWidth3(int);
207 void setLineWidth4(int);
208 void setLineWidth5(int);
209 void setLineWidth6(int);
210 void setLineWidth7(int);
211 void setLineWidth8(int);
212 void setLineWidth9(int);
213
214 void setLineStyle1(Qt::PenStyle);
215 void setLineStyle2(Qt::PenStyle);
216 void setLineStyle3(Qt::PenStyle);
217 void setLineStyle4(Qt::PenStyle);
218 void setLineStyle5(Qt::PenStyle);
219 void setLineStyle6(Qt::PenStyle);
220 void setLineStyle7(Qt::PenStyle);
221 void setLineStyle8(Qt::PenStyle);
222 void setLineStyle9(Qt::PenStyle);
223
224 void setLineMarker1(QwtSymbol::Style);
225 void setLineMarker2(QwtSymbol::Style);
226 void setLineMarker3(QwtSymbol::Style);
227 void setLineMarker4(QwtSymbol::Style);
228 void setLineMarker5(QwtSymbol::Style);
229 void setLineMarker6(QwtSymbol::Style);
230 void setLineMarker7(QwtSymbol::Style);
231 void setLineMarker8(QwtSymbol::Style);
232 void setLineMarker9(QwtSymbol::Style);
233
243
244 void setZoomerColor(QColor c);
245 void setPaletteColor(QColor c);
246 void setAxisLabelFontSize(int axisId, int fs);
250
251 void setStop(bool on);
252
253 void resizeSlot(QSize* s);
254
255 void onPickerPointSelected(const QPointF& p);
256
257signals:
258 void plotPointSelected(const QPointF p);
259
260protected slots:
261 virtual void legendEntryChecked(QwtPlotItem* plotItem, bool on);
262 virtual void legendEntryChecked(const QVariant& plotItem, bool on, int index);
263
264protected:
265 unsigned int d_nplots;
266 std::vector<QwtPlotCurve*> d_plot_curve;
267
268 QwtPlotPanner* d_panner;
269 QwtPlotZoomer* d_zoomer;
270
272 QwtPlotMagnifier* d_magnifier;
273
274 int64_t d_numPoints;
275
276 bool d_stop;
277
278 QList<QColor> d_trace_colors;
279
281};
282
283#endif /* DOMAIN_DISPLAY_PLOT_H */
QList< QColor > QColorList
Definition: DisplayPlot.h:31
QWidget base plot to build QTGUI plotting tools.
Definition: DisplayPlot.h:42
void setMarkerAlpha2(int)
const QwtSymbol::Style getLineMarker1() const
int axes_label_font_size
Definition: DisplayPlot.h:105
void plotPointSelected(const QPointF p)
void setLineWidth5(int)
void setLineStyle4(Qt::PenStyle)
void setXaxisLabelFontSize(int fs)
void setLineMarker3(QwtSymbol::Style)
QwtSymbolStyle line_marker2
Definition: DisplayPlot.h:79
QColor line_color8
Definition: DisplayPlot.h:52
void setAxesLabelFontSize(int fs)
void setLineMarker2(QwtSymbol::Style)
void setLineColor7(QColor)
const Qt::PenStyle getLineStyle4() const
const Qt::PenStyle getLineStyle1() const
QColor line_color6
Definition: DisplayPlot.h:50
virtual void setLineStyle(unsigned int which, Qt::PenStyle style)
virtual const QwtSymbol::Style getLineMarker(unsigned int which) const
const QColor getLineColor7() const
void setLineStyle3(Qt::PenStyle)
QColor line_color3
Definition: DisplayPlot.h:47
void setLineMarker8(QwtSymbol::Style)
QwtSymbolStyle line_marker8
Definition: DisplayPlot.h:85
QColor palette_color
Definition: DisplayPlot.h:99
const Qt::PenStyle getLineStyle8() const
const QColor getLineColor8() const
QwtSymbolStyle line_marker5
Definition: DisplayPlot.h:82
const QwtSymbol::Style getLineMarker8() const
void setPaletteColor(QColor c)
const QColor getLineColor6() const
int getMarkerAlpha5() const
int line_width8
Definition: DisplayPlot.h:62
int getLineWidth2() const
QColor line_color9
Definition: DisplayPlot.h:53
int marker_alpha7
Definition: DisplayPlot.h:94
void setLineColor9(QColor)
int line_width7
Definition: DisplayPlot.h:61
const QColor getLineColor5() const
int getMarkerAlpha8() const
void setLineColor1(QColor)
int line_width3
Definition: DisplayPlot.h:57
QwtSymbolStyle line_marker1
Definition: DisplayPlot.h:78
QwtPlotPanner * d_panner
Definition: DisplayPlot.h:268
QwtPlotMagnifier * d_magnifier
Definition: DisplayPlot.h:272
QColor line_color2
Definition: DisplayPlot.h:46
const QwtSymbol::Style getLineMarker2() const
void setLineStyle5(Qt::PenStyle)
void setMarkerAlpha7(int)
int getLineWidth6() const
QColor line_color5
Definition: DisplayPlot.h:49
void setLineMarker9(QwtSymbol::Style)
virtual void setAxisLabels(bool en)
void setMarkerAlpha1(int)
Qt::PenStyle line_style2
Definition: DisplayPlot.h:66
int marker_alpha1
Definition: DisplayPlot.h:88
const QColor getLineColor4() const
void setLineColor8(QColor)
void setLineWidth2(int)
void setLineWidth8(int)
Qt::PenStyle line_style1
Definition: DisplayPlot.h:65
Qt::PenStyle line_style3
Definition: DisplayPlot.h:67
void setLineMarker6(QwtSymbol::Style)
const QColor getLineColor9() const
void setLineColor3(QColor)
int marker_alpha8
Definition: DisplayPlot.h:95
int marker_alpha6
Definition: DisplayPlot.h:93
bool d_stop
Definition: DisplayPlot.h:276
int getLineWidth4() const
virtual int getLineWidth(unsigned int which) const
int line_width5
Definition: DisplayPlot.h:59
const QwtSymbol::Style getLineMarker9() const
void setMarkerAlpha9(int)
void setLineColor5(QColor)
int xaxis_label_font_size
Definition: DisplayPlot.h:103
void setLineStyle7(Qt::PenStyle)
void setLineStyle2(Qt::PenStyle)
const Qt::PenStyle getLineStyle7() const
int getMarkerAlpha4() const
const Qt::PenStyle getLineStyle9() const
int getLineWidth7() const
const Qt::PenStyle getLineStyle3() const
const QwtSymbol::Style getLineMarker6() const
int marker_alpha9
Definition: DisplayPlot.h:96
virtual void setLineLabel(unsigned int which, QString label)
QColor line_color7
Definition: DisplayPlot.h:51
int getAxisLabelFontSize(int axisId) const
Qt::PenStyle line_style9
Definition: DisplayPlot.h:73
int getMarkerAlpha7() const
virtual const Qt::PenStyle getLineStyle(unsigned int which) const
void setLineStyle9(Qt::PenStyle)
void onPickerPointSelected(const QPointF &p)
virtual void setMarkerAlpha(unsigned int which, int alpha)
virtual QString getLineLabel(unsigned int which)
const QwtSymbol::Style getLineMarker5() const
QwtSymbolStyle line_marker3
Definition: DisplayPlot.h:80
virtual void setYaxis(double min, double max)
void setYaxisLabelFontSize(int fs)
QwtDblClickPlotPicker * d_picker
Definition: DisplayPlot.h:271
QColor line_color1
Definition: DisplayPlot.h:45
Qt::PenStyle line_style4
Definition: DisplayPlot.h:68
virtual void legendEntryChecked(QwtPlotItem *plotItem, bool on)
virtual void setLineMarker(unsigned int which, QwtSymbol::Style marker)
const QwtSymbol::Style getLineMarker7() const
void setLineStyle8(Qt::PenStyle)
int line_width6
Definition: DisplayPlot.h:60
const QColor getLineColor2() const
const QColor getLineColor1() const
bool d_autoscale_state
Definition: DisplayPlot.h:280
Qt::PenStyle line_style6
Definition: DisplayPlot.h:70
void setLineColor6(QColor)
void setLineMarker7(QwtSymbol::Style)
int marker_alpha5
Definition: DisplayPlot.h:92
QwtSymbolStyle line_marker7
Definition: DisplayPlot.h:84
void setAxisLabelFontSize(int axisId, int fs)
int getMarkerAlpha6() const
QwtSymbolStyle line_marker9
Definition: DisplayPlot.h:86
int getLineWidth1() const
int marker_alpha2
Definition: DisplayPlot.h:89
void setStop(bool on)
QColor getPaletteColor() const
int yaxis_label_font_size
Definition: DisplayPlot.h:101
int getMarkerAlpha1() const
void replot() override=0
void setLineWidth9(int)
int getLineWidth8() const
void setLineColor2(QColor)
void setLineMarker5(QwtSymbol::Style)
virtual void setXaxis(double min, double max)
const Qt::PenStyle getLineStyle2() const
int marker_alpha3
Definition: DisplayPlot.h:90
void setLineWidth6(int)
Qt::PenStyle line_style5
Definition: DisplayPlot.h:69
int line_width4
Definition: DisplayPlot.h:58
void setLineWidth7(int)
virtual void setLineColor(unsigned int which, QColor color)
int getAxesLabelFontSize() const
void setMarkerAlpha3(int)
virtual QColor getLineColor(unsigned int which) const
const Qt::PenStyle getLineStyle6() const
void setLineColor4(QColor)
QwtSymbolStyle line_marker6
Definition: DisplayPlot.h:83
virtual void disableLegend()
int getMarkerAlpha9() const
void setLineWidth1(int)
const QColor getLineColor3() const
unsigned int d_nplots
Definition: DisplayPlot.h:265
QColor getZoomerColor() const
void setMarkerAlpha4(int)
int getXaxisLabelFontSize() const
QColor line_color4
Definition: DisplayPlot.h:48
void setMarkerAlpha5(int)
QColor zoomer_color
Definition: DisplayPlot.h:98
int line_width9
Definition: DisplayPlot.h:63
int64_t d_numPoints
Definition: DisplayPlot.h:274
QList< QColor > d_trace_colors
Definition: DisplayPlot.h:278
QwtPlotZoomer * d_zoomer
Definition: DisplayPlot.h:269
int line_width2
Definition: DisplayPlot.h:56
void setLineStyle1(Qt::PenStyle)
QwtSymbolStyle line_marker4
Definition: DisplayPlot.h:81
int getLineWidth5() const
const QwtSymbol::Style getLineMarker4() const
int marker_alpha4
Definition: DisplayPlot.h:91
int getLineWidth9() const
int getMarkerAlpha3() const
int getLineWidth3() const
void setZoomerColor(QColor c)
Qt::PenStyle line_style8
Definition: DisplayPlot.h:72
void resizeSlot(QSize *s)
void setMarkerAlpha8(int)
void setMarkerAlpha6(int)
void setLineWidth4(int)
int getYaxisLabelFontSize() const
void setLineStyle6(Qt::PenStyle)
virtual void setLineWidth(unsigned int which, int width)
void setLineWidth3(int)
const QwtSymbol::Style getLineMarker3() const
void setLineMarker1(QwtSymbol::Style)
virtual int getMarkerAlpha(unsigned int which) const
int line_width1
Definition: DisplayPlot.h:55
int getMarkerAlpha2() const
std::vector< QwtPlotCurve * > d_plot_curve
Definition: DisplayPlot.h:266
Qt::PenStyle line_style7
Definition: DisplayPlot.h:71
void setLineMarker4(QwtSymbol::Style)
const Qt::PenStyle getLineStyle5() const
Definition: utils.h:30
float min(float a, float b)
STL namespace.