#ifndef COALSTATISTICSCHARTWIDGET_H #define COALSTATISTICSCHARTWIDGET_H #include "component/qcustomplot/qcustomplot.h" #include #include 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 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& 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 m_volumeDataMap; }; #endif // COALSTATISTICSCHARTWIDGET_H