自定义组件_滚动横幅&弹窗&对话框&字体图标等
自定义组件_圆弧进度条
自定义组件_水波进度条
自定义组件_多彩仪表盘
自定义组件_通用仪表盘
自定义组件_网格组件(GirdWidget)
自定义组件_动静曲线

仓库

个性
  1. 可设置 Y 轴范畴、标签格局、tick 数量
  2. 可设置 X 轴时间跨度、工夫格局、tick 数量
  3. 可显示任意多条曲线、设置对应曲线色彩及数值点是否显示
  4. 可设置曲线更新工夫距离
  5. 可抉择暗藏曲线
  6. 自适应窗体拉伸,图表主动缩放
#ifndef DYNAMICLINE_H#define DYNAMICLINE_H#include <QChart>#include <QChartView>#include <QDateTime>#include <QDateTimeAxis>#include <QLineSeries>#include <QTimer>#include <QValueAxis>#include <QVector>#include <QWidget>using namespace QtCharts;/* 动静曲线 * 1. 可设置 Y 轴范畴、标签格局、tick 数量 * 2. 可设置 X 轴时间跨度、工夫格局、tick 数量 * 3. 可显示任意多条曲线、设置对应曲线色彩及数值点是否显示 * 4. 可设置曲线更新工夫距离 * 5. 可抉择暗藏曲线 * 6. 自适应窗体拉伸,图表主动缩放 */class DynamicLine : public QWidget{    Q_OBJECTpublic:    explicit DynamicLine(QWidget *parent = nullptr);    ~DynamicLine();    void start(int intervalMsec = 1000);                        // 开始更新图表    void stop();                                                // 进行更新图表    int count() const;                                          // 曲线数量    qint64 timeAxisXSpanSecs() const;                           // X 轴时间跨度    void addSplineSeries(const QString &name = "", const QPen &pen = QPen(), bool pointsVisible = false);  // 增加一条新的曲线public slots:    void setSeriesValues(int index, int value);                 // 设置曲线值    void setSeriesVisible(int index, bool visible);             // 设置曲线是否可见    void setChartTitle(const QString &title);                   // 设置图表题目    void setTimeAxisXSpanSecs(qint64 secs);                     // 设置 X 轴时间跨度    void setTimeAxisXFormat(const QString &format = "HH:mm");   // 设置 X 轴工夫格局    void setTimeAxisXTickCount(int tickCount);                  // 设置 X 轴 tick 数量    void setAxisYRange(qreal min, qreal max);                   // 设置 Y 轴范畴    void setpAxisYTickCount(int count);                         // 设置 Y 轴 tick 数量    void setAxisYLabelFormat(const QString &format);            // 设置 Y 轴标签格局private:    void initUi();    void initCtrl();    QLineSeries *createSeries(QChart *chart, const QString &name, const QPen &pen, bool pointsVisible = false);private slots:    void updateChart();private:    QVector<QLineSeries*> m_series;    QChartView*           m_pChartView = nullptr;    QChart*               m_pChart     = nullptr;    QDateTimeAxis*        m_pTimeAxisX = nullptr;    QValueAxis*           m_pAxisY     = nullptr;    qint64 m_spanSecs = 60;    QVector<int> m_lastValues;    bool m_isFirstTime = false;    QTimer m_timer;};#endif // DYNAMICLINE_H