114 lines
2.8 KiB
C++
114 lines
2.8 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();
|
|
|
|
/**
|
|
* @brief initCustomPlotCoalStatisticsBarChart 初始化customPlot柱状图
|
|
*/
|
|
void initCustomPlotCoalStatisticsBarChart();
|
|
|
|
/**
|
|
* @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
|