CTL  0.6.1
Computed Tomography Library
chartviewbase.h
1 #ifndef CTL_CHARTVIEWBASE_H
2 #define CTL_CHARTVIEWBASE_H
3 
4 #include "qtchartsnamespace.h"
5 #include <QChartView>
6 #include <QLineSeries>
7 
8 namespace CTL {
9 namespace gui {
10 
20 class ChartViewBase : public QChartView
21 {
22  Q_OBJECT
23 public:
24  QImage image(const QSize& renderSize = QSize());
25 
26 public Q_SLOTS:
27  void autoRange();
28  bool save(const QString& fileName);
29  void saveDialog();
30  void setLabelX(const QString& label);
31  void setLabelY(const QString& label);
32  void setLogAxisY(bool enabled);
33  void setOverRangeY(bool enabled);
34  void setRangeX(double from, double to);
35  void setRangeY(double from, double to);
36  void setUseNiceX(bool enabled);
37  void toggleLinLogY();
38 
39 protected:
40  explicit ChartViewBase(QWidget* parent = nullptr);
41 
42  void mouseDoubleClickEvent(QMouseEvent* event) override;
43  void keyPressEvent(QKeyEvent* event) override;
44 
45  virtual void copyDataToClipboard() const;
46  void mySetAxisX(QAbstractAxis* axisX, QAbstractSeries* series);
47  void mySetAxisY(QAbstractAxis* axisY, QAbstractSeries* series);
48  QAbstractAxis* myAxisX(QAbstractSeries* series);
49  QAbstractAxis* myAxisY(QAbstractSeries* series);
50  void setSeriesShow(QAbstractSeries* series, bool shown);
51  void switchToLinAxisY();
52  void switchToLogAxisY();
53  bool yAxisIsLinear() const;
54 
55  QChart* _chart;
56  QAbstractSeries* _plottableSeries;
57  QAbstractSeries* _plottableSeriesLog;
58  QLineSeries* _dataSeries;
59  QLineSeries* _dataSeriesLog;
60 
61 private:
62  bool _overRangeY = false;
63  bool _useNiceX = false;
64 };
65 
66 
67 } // namespace gui
68 } // namespace CTL
69 
70 #endif // CTL_CHARTVIEWBASE_H
ChartViewBase(QWidget *parent=nullptr)
Definition: chartviewbase.cpp:15
void setRangeX(double from, double to)
Definition: chartviewbase.cpp:159
void toggleLinLogY()
Definition: chartviewbase.cpp:204
The ChartViewBase class is the base class for plot-like visualizers in the CTL.
Definition: chartviewbase.h:20
QImage image(const QSize &renderSize=QSize())
Definition: chartviewbase.cpp:32
void setOverRangeY(bool enabled)
Definition: chartviewbase.cpp:149
bool save(const QString &fileName)
Definition: chartviewbase.cpp:93
void saveDialog()
Definition: chartviewbase.cpp:103
void setLabelX(const QString &label)
Definition: chartviewbase.cpp:115
void setRangeY(double from, double to)
Definition: chartviewbase.cpp:181
void autoRange()
Definition: chartviewbase.cpp:54
void setLogAxisY(bool enabled)
Definition: chartviewbase.cpp:134
void setLabelY(const QString &label)
Definition: chartviewbase.cpp:124
void setUseNiceX(bool enabled)
Definition: chartviewbase.cpp:199