PowerMaster/dataPanel/dpBarsChart.h

62 lines
1.4 KiB
C++

#ifndef DPBARSCHART_H
#define DPBARSCHART_H
/*******************************************************************************
** DataPanel-BarsChart
** author dsc
**
** 柱状图展示面板,用来展示统计数据(如各类报警、事件的数量)
** 采用QCustomPlot实现
**
******************************************************************************/
#include "dpBaseChart.h"
class QCustomPlot;
class QCPBarsGroup;
class dpBarsChart : public dpBaseChart
{
Q_OBJECT
public:
dpBarsChart(QWidget *parent = nullptr);
~dpBarsChart();
void setTimeRange(TimeUnit) override;
void setDateTime(const QDateTime&) override;
void viewHistoricalData(const QDateTime&) override;
void synchronizeConfigData(const configurationResults&) override;
public slots:
void onSignal_dataUpdated(const QString& dataKey, const QVariant& data, const QDateTime& timestamp);
private:
struct Bars
{
QColor color;
QString name;
QString dataID;
RealTimeDataType dataType;
QVector<double> keys;
QPointer<QCPBars> qBars;
Bars()
{
name = "";
dataID = "";
}
};
void initQCP();
QCustomPlot* m_pCustomPlot;
ChartStyle m_chartStyle;
//QCPBarsGroup* m_pBarsGroup;
QHash<QString, Bars> m_bars;
QHash<RealTimeDataType, QCPBarsGroup*> m_barsGroups;
};
#endif