1.使用cmake编译的添加如下命令:
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Charts)
得包含Charts库,且加入target_link_libraries(名称 Qt${QT_VERSION_MAJOR}::Charts)
第一步:.h代码
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QtCharts/QChart>
#include <QtCharts/QLineSeries>
#include <QtCharts/QChartView>
#include <QtCharts/QValueAxis>
// 高度折线
QLineSeries *heightSeries;
// 压力折线
QLineSeries *pressureSeries;
// 设置轴
QValueAxis *axisX;
QValueAxis *heightAxisY;
QValueAxis *pressureAxisY;
第二步:.cpp步骤
首先选定qwidget,
QWidget *chartsContainer = ui->lineChart;
QGridLayout *layout = new QGridLayout(chartsContainer);
创建轴坐标
axisX = new QValueAxis();
axisX->setRange(0, 9);//设置区间
axisX->setLabelFormat("%d");//设置标签格式
axisX->setGridLineVisible(false);//不显示网格
axisX->setTitleText("时间S");//
heightAxisY = new QValueAxis();
heightAxisY->setRange(0, 2);
heightAxisY->setLabelFormat("%.1f");
QPen transparentPen(Qt::transparent);//改变坐标轴颜色,变成透明色
heightAxisY->setLinePen(transparentPen);
创建折线
heightSeries = new QLineSeries();
for (int j = 0; j < heights.size(); ++j) {
heightSeries->append(j, heights[j].toDouble());//添加数据
}
heightSeries->setName("行程mm");//图例命名
将折线和轴添加图表
chart->addSeries(heightSeries);
chart->setAxisX(axisX, heightSeries);
chart->addAxis(heightAxisY, Qt::AlignLeft);
heightSeries->attachAxis(heightAxisY);
如果你想要在一个窗口有多个折现图的话,可以使用QChartView
// 创建图表视图
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
// 将图表视图添加到布局中
// 注意:这里我们简单地使用行和列来放置图表视图
// 根据需要调整 row 和 column 的值
int row = group / 3; // 假设我们想要三行俩列的布局
int column = group % 3 * 2; // 每行三个图表
layout->addWidget(chartView, row, column, 1, 1); // 可以根据需要调整跨度