GNU Radio Manual and C++ API Reference  3.7.9.2
The Free & Open Software Radio Ecosystem
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
displayform.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2012 Free Software Foundation, Inc.
4  *
5  * This file is part of GNU Radio
6  *
7  * GNU Radio is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3, or (at your option)
10  * any later version.
11  *
12  * GNU Radio is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with GNU Radio; see the file COPYING. If not, write to
19  * the Free Software Foundation, Inc., 51 Franklin Street,
20  * Boston, MA 02110-1301, USA.
21  */
22 
23 #ifndef DISPLAY_FORM_H
24 #define DISPLAY_FORM_H
25 
27 #include <gnuradio/qtgui/api.h>
28 #include <QtGui/QtGui>
29 #include <vector>
30 
31 #include <qwt_plot_grid.h>
32 #include <qwt_plot_layout.h>
33 
36 
37 /*!
38  * \brief Base class for setting up and managing QTGUI plot forms.
39  * \ingroup qtgui_blk
40  */
41 class QTGUI_API DisplayForm : public QWidget
42 {
43  Q_OBJECT
44 
45  public:
46  DisplayForm(int nplots=1, QWidget* parent = 0);
47  ~DisplayForm();
48 
49  virtual DisplayPlot* getPlot() = 0;
50  void Reset();
51  bool isClosed() const;
52 
53  void enableMenu(bool en=true);
54 
55 public slots:
56  void resizeEvent( QResizeEvent * e );
57  void mousePressEvent( QMouseEvent * e);
58  virtual void customEvent( QEvent * e ) = 0;
59 
60  void closeEvent( QCloseEvent * e );
61 
62  void setUpdateTime(double t);
63 
64  void setTitle(const QString &title);
65  void setLineLabel(int which, const QString &label);
66  void setLineColor(int which, const QString &color);
67  void setLineWidth(int which, int width);
68  void setLineStyle(int which, Qt::PenStyle style);
69  void setLineMarker(int which, QwtSymbol::Style style);
70  void setMarkerAlpha(int which, int alpha);
71 
72  QString title();
73  QString lineLabel(int which);
74  QString lineColor(int which);
75  int lineWidth(int which);
76  Qt::PenStyle lineStyle(int which);
77  QwtSymbol::Style lineMarker(int which);
78  int markerAlpha(int which);
79 
80  virtual void setSampleRate(const QString &rate);
81 
82  void setStop(bool on);
83  void setStop();
84 
85  void setGrid(bool on);
86 
87  void saveFigure();
88 
89  void disableLegend();
90 
91 private slots:
92  virtual void newData(const QEvent*) = 0;
93  virtual void autoScale(bool) = 0;
94  void updateGuiTimer();
95 
96  virtual void onPlotPointSelected(const QPointF p);
97 
98 signals:
99  void plotPointSelected(const QPointF p, int type);
100  void toggleGrid(bool en);
101 
102 protected:
104 
105  int d_nplots;
106 
107  QGridLayout *d_layout;
110 
111  QwtPlotGrid *d_grid;
112 
113  bool d_menu_on;
114  QMenu *d_menu;
115 
116  QAction *d_stop_act;
118  QAction *d_grid_act;
120 
121  QAction *d_autoscale_act;
123 
124  QList<QMenu*> d_lines_menu;
125  QList<LineTitleAction*> d_line_title_act;
126  QList<LineColorMenu*> d_line_color_menu;
127  QList<LineWidthMenu*> d_line_width_menu;
128  QList<LineStyleMenu*> d_line_style_menu;
129  QList<LineMarkerMenu*> d_line_marker_menu;
130  QList<MarkerAlphaMenu*> d_marker_alpha_menu;
131 
133  QAction *d_save_act;
134 
136 };
137 
138 #endif /* DISPLAY_FORM_H */
Base class for setting up and managing QTGUI plot forms.
Definition: displayform.h:41
DisplayPlot * d_display_plot
Definition: displayform.h:108
Definition: form_menus.h:1494
QWidget base plot to build QTGUI plotting tools.
Definition: DisplayPlot.h:61
bool d_menu_on
Definition: displayform.h:113
QwtPlotGrid * d_grid
Definition: displayform.h:111
PopupMenu * d_samp_rate_act
Definition: displayform.h:132
QAction * d_autoscale_act
Definition: displayform.h:121
int d_nplots
Definition: displayform.h:105
bool d_grid_state
Definition: displayform.h:119
bool d_autoscale_state
Definition: displayform.h:122
QList< LineWidthMenu * > d_line_width_menu
Definition: displayform.h:127
QList< LineTitleAction * > d_line_title_act
Definition: displayform.h:125
#define QTGUI_API
Definition: gr-qtgui/include/gnuradio/qtgui/api.h:30
QList< QMenu * > d_lines_menu
Definition: displayform.h:124
bool d_isclosed
Definition: displayform.h:103
QMenu * d_menu
Definition: displayform.h:114
QGridLayout * d_layout
Definition: displayform.h:107
QList< LineColorMenu * > d_line_color_menu
Definition: displayform.h:126
QList< LineStyleMenu * > d_line_style_menu
Definition: displayform.h:128
bool d_system_specified_flag
Definition: displayform.h:109
QAction * d_grid_act
Definition: displayform.h:118
QList< LineMarkerMenu * > d_line_marker_menu
Definition: displayform.h:129
QList< MarkerAlphaMenu * > d_marker_alpha_menu
Definition: displayform.h:130
bool d_stop_state
Definition: displayform.h:117
double d_update_time
Definition: displayform.h:135
QAction * d_save_act
Definition: displayform.h:133
QAction * d_stop_act
Definition: displayform.h:116