1 概述
QSplineSeries类是Qt图表模块中的一个曲线系列类,用于绘制平滑的二次和三次曲线。这个系列通过在给定的数据点之间插值来绘制曲线,从而使得曲线更加平滑。
使用QSplineSeries时,需要将数据点作为QPointF类型的列表传递给数据集。然后将数据集添加到QChart中。可以使用QSplineSeries的其他方法来设置线条颜色、宽度、拐点形状等。
2 主要功能
- 动态绘制曲线图
- 放大、缩小以及还原图表视图
- 实时获取图表坐标值
3 功能步骤
3.1 动态曲线图
- 在
.pro文件加入模块,charts。
QT += core gui charts
- 在设计师界面拖拽一个
QGraphicsView控件,提升为自己重写的MyChartView类。


- 在
MyChartView类以及MainWindow类头文件里加入图表命名空间,以及对应头文件。
#include <QChartView>
QT_CHARTS_USE_NAMESPACE
- 主要代码
const int AXIS_MIN_X = 0;
const int AXIS_MAX_X = 50;
const int AXIS_MIN_Y = -50;
const int AXIS_MAX_Y = 50;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private Q_SLOTS:
void onTimeOut();
private:
void createChart();
private:
Ui::MainWindow *ui;
QChart *chart;
QSplineSeries *series;
QValueAxis *axisX;
QTimer *timer;
QRandomGenerator *randGenerator;
int m_lastY;
bool m_pause;
bool m_start;
QLabel *m_labXYValue;
};
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
, m_lastY(0)
, m_pause(false)
, m_start(false)
{
ui->setupUi(