Qt widget显示曲线

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();
            }
        }

这样我们就实现了每次点击按钮,都可以实现当下的图像。

相关推荐
小短腿的代码世界3 小时前
Qt实时盈亏计算深度解析:从持仓数据到动态盈亏展示
开发语言·qt
Python私教4 小时前
GenericAgent PySide6 桌面应用深度解析:悬浮按钮 + 聊天面板的原生 Qt 方案
开发语言·数据库·qt
用户805533698034 小时前
现代Qt开发教程(新手篇)1.11——定时器
c++·qt
小短腿的代码世界6 小时前
Qt券商接口封装深度解析:统一API设计与多源适配
开发语言·qt·单元测试
T0uken7 小时前
基于 vcpkg 与 LLVM-MinGW 的 Qt6 静态链接开发方案
c++·windows·qt
Ulyanov7 小时前
《现代 Python 桌面应用架构实战:PySide6 + QML 从入门到工程化》 开发环境搭建与工具链极简主义 —— 拒绝臃肿,构建工业级基座
开发语言·python·qt·ui·架构·系统仿真
(Charon)12 小时前
【C++/Qt】Qt 实现 MQTT 测试工具:连接 Broker、订阅主题与发布消息
开发语言·c++·qt
Ulyanov12 小时前
《现代 Python 桌面应用架构实战:PySide6 + QML 从入门到工程化》:动态数据仪表盘与 NumPy 可视化 —— 从标量到向量的数据驱动进化
开发语言·python·qt·架构·numpy
小短腿的代码世界12 小时前
Qt序列化与持久化深度解析:从QDataStream到自定义二进制协议
开发语言·数据库·qt
誰能久伴不乏12 小时前
Qt/C++ 架构之美:用一个“水龙头”隐喻,讲透面向接口编程与彻底解耦
c++·qt·架构