HX_CoalFlowDetect/view/coalstatisticschartwidget.h

112 lines
2.7 KiB
C++

#ifndef COALSTATISTICSCHARTWIDGET_H
#define COALSTATISTICSCHARTWIDGET_H
#include "component/qcustomplot/qcustomplot.h"
#include <QWidget>
#include <QtCharts>
QT_CHARTS_USE_NAMESPACE
namespace Ui {
class CoalStatisticsChartWidget;
}
enum TimeUnit {
Hour = 0, // 时
Day = 1, // 天
Month = 2, // 月
Year = 3 // 年
};
class CoalStatisticsChartWidget : public QWidget {
Q_OBJECT
public:
explicit CoalStatisticsChartWidget(QWidget *parent = nullptr);
~CoalStatisticsChartWidget();
signals:
void querySuccessInfo(QString &queryInfo);
private slots:
/**
* @brief on_pushButton_coalStatisOk_clicked 点击确定按钮
*/
void on_pushButton_coalStatisOk_clicked();
private:
/**
* @brief initCoalStatisticsBarChart 初始化煤量统计柱状图
*/
void initCoalStatisticsBarChart();
/**
* @brief formatTimeRange 格式化时间范围
* @param beginTimeStr
* @param endTimeStr
* @param formattedBeginTime
* @param formattedEndTime
*/
void formatTimeRange(const QString &beginTimeStr, const QString &endTimeStr,
QString &formattedBeginTime, QString &formattedEndTime);
/**
* @brief getLastSixFullHours 计算前六个整点时间
* @param currentTime 当前时间
* @return 六个整点数
*/
QList<QString> getLastSixFullHours(const QDateTime &currentTime);
/**
* @brief initCustomCoalStatisticsBarChart 初始化用户自定义柱状图
*/
void initCustomCoalStatisticsBarChart();
void initCustomPlotBarChart();
/**
* @brief getCoalStatisInfoByHttpRequest 通过Http请求获取煤量统计信息
* @param startTime 请求起始时间
* @param endTime 请求终止时间
* @param statisticUnit 统计单位
* @param volumeDataMap 体积统计结果Map
*/
void getCoalStatisInfoByHttpRequest(const QString &startTime,
const QString &endTime,
const QString &statisticUnit);
/**
* @brief updateCoalStatisticsChart 更新煤溜统计柱状图数据
* @param volumeDataMap 统计结果数据
*/
void updateCoalStatisticsChart(const QMap<QString, double> &volumeDataMap);
private:
Ui::CoalStatisticsChartWidget *ui;
QChart *m_chart;
QChartView *m_chartView;
QBarSeries *m_series;
QBarCategoryAxis *m_axisX;
// QDateTimeAxis* m_axisX;
// QValueAxis* m_axisX;
QValueAxis *m_axisY;
QTimer *m_timer;
QCustomPlot *m_customPlot;
QCPBars *m_barGraph;
QSettings *m_systemSetting;
double m_toalValue = 0.0;
/**
* @brief m_volumeDataMap 查询出煤量数据
*/
QMap<QString, double> m_volumeDataMap;
};
#endif // COALSTATISTICSCHARTWIDGET_H