123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #ifndef CHARTLINE_H
- #define CHARTLINE_H
- #include <QtCharts/QChartView>
- #include <QtCharts/QLineSeries>
- #include <QtCharts/QScatterSeries>
- #include <QtCharts/QValueAxis>
- #include <QMap>
- #include <QPixmap>
- #include <QList>
- #include <QGraphicsPixmapItem>
- QT_CHARTS_USE_NAMESPACE
- struct DataSeries {
- QString seriesName;
- QColor lineColor;
- QPixmap markerIcon;
- QList<QPointF> data;
- };
- class ChartLine : public QChartView
- {
- Q_OBJECT
- public:
- explicit ChartLine(QWidget *parent = nullptr);
-
- void setChartLabels(const QString &chartTitle,
- const QString &xAxisLabel,
- const QString &yAxisLabel);
-
- void addDataSeries(const DataSeries &series);
-
- void removeDataSeries(const QString &seriesName);
-
- void updateDataSeries(const QString &seriesName, const QList<QPointF> &data);
- protected:
- void resizeEvent(QResizeEvent *event) override;
- private:
- QChart *m_chart;
- QValueAxis *m_axisX;
- QValueAxis *m_axisY;
-
- QLineSeries *m_lineSeries;
-
- QMap<QString, DataSeries> m_dataSeriesMap;
-
- QMap<QString, QScatterSeries*> m_scatterSeriesMap;
-
- QMap<QString, QList<QGraphicsPixmapItem*>> m_pixmapItemsMap;
-
- void rebuildLineSeries();
-
- void updateMarkers();
- };
- #endif
|