Qt通过widget显示曲线,需要下载charts插件。然后在pro文件进行引用。
cpp
QT += charts
一般在开始安装的时候,我们就要选择charts组件安装,否则,我们在引用的时候就会报错。
接下来我们开始画出曲线新建一个chart对象,创建QLineSeries对象
cpp
QChart *chart = new QChart();
// 创建一个QLineSeries对象,用于绘制线性图
QLineSeries *series1 = new QLineSeries();
QLineSeries *series2 = new QLineSeries();
cpp
series1->append(QPointF(1, 2));
series添加点,
cpp
chart->addSeries(series1);
chart->addSeries(series2);
series1->setName("电压曲线");
series2->setName("电流曲线");
chart->createDefaultAxes();
//chart->axes(Qt::Horizontal)[0]->setRange(0, 10); // 设置X轴范围
//chart->axes(Qt::Vertical)[0]->setRange(0, 10); // 设置Y轴范围
chart->setAxisX(new QValueAxis());
chart->setAxisY(new QValueAxis());
//chart->setAxisX(new QValueAxis(),series2);
//chart->setAxisY(new QValueAxis(),series2);
series1->attachAxis(chart->axes(Qt::Horizontal)[0]);
series2->attachAxis(chart->axes(Qt::Horizontal)[0]);
series1->attachAxis(chart->axes(Qt::Vertical)[0]);
series2->attachAxis(chart->axes(Qt::Vertical)[0]);
chart->axisY()->setTitleText("Y轴标签");
chart->axisX()->setTitleText("X轴标签");
QChartView* chartView = new QChartView(chart);
//ui->widget->layout()->removeWidget(chartView);
chartView->setRenderHint(QPainter::Antialiasing);
// 将QChartView设置为QWidget的子部件
ui->widget_2->setLayout(layout);
ui->widget_2->layout()->addWidget(chartView);
这样我们就画出曲线图了,演示界面如下:
为了实现每次点击按钮都是最新的图像,所以我们需要清空widget。
实现代码如下:
cpp
QList<QWidget *> children = ui->widget_2->findChildren<QWidget *>();
// 删除所有子控件
foreach (QWidget *child, children) {
// 不包括自己
if (child != ui->widget_2) {
child->deleteLater();
}
}
这样我们就实现了每次点击按钮,都可以实现当下的图像。