QChart的使用

本文介绍如何使用QT库创建温度和湿度的动态曲线图表。通过初始化系列数据、设置坐标轴范围及时间间隔,实现了两组节点(node1和node2)的温度与湿度变化趋势的可视化展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,h文件中定义,温度和湿度的所需变量

    QSplineSeries*temperature_node1_series;
    QSplineSeries*temperature_node2_series;

    QSplineSeries*humidity_node1_series;
    QSplineSeries*humidity_node2_series;

    QChartView*temperature_chartView;
    QChartView*humidity_chartView;

在添加一个初始化的函数

    void initSeries(QDateTime from, QDateTime to);

。cpp文件中

void initwidget::initSeries(QDateTime from,QDateTime to)
{
    //温度线
    this->temperature_node1_series=new QSplineSeries(this);//
    this->temperature_node1_series->setName("node1");//图例
    this->humidity_node1_series=new QSplineSeries(this);
    this->humidity_node1_series->setName("node1");
    //湿度线
    this->temperature_node2_series=new QSplineSeries(this);
    this->temperature_node2_series->setName("node2");
    this->humidity_node2_series=new QSplineSeries(this);
    this->humidity_node2_series->setName("node2");
    //QChart波形图类
    QChart*chart_temperature=new QChart();//
    chart_temperature->setTitle("温度曲线");
    chart_temperature->addSeries(this->temperature_node1_series);//添加
    chart_temperature->addSeries(this->temperature_node2_series);//添加
    //Y轴操作,设置范围
    QValueAxis *temperature_YAxis=new QValueAxis(this);
    temperature_YAxis->setRange(25,35);//设置范围
    //X轴操作,设置时间
    QDateTimeAxis *temperature_XAxis=new QDateTimeAxis(this);
    temperature_XAxis->setRange(from,to);
    //添加到QChart中
    chart_temperature->addAxis(temperature_YAxis,Qt::AlignLeft);
    chart_temperature->addAxis(temperature_XAxis,Qt::AlignBottom);
    //添加显示线
    this->temperature_node1_series->attachAxis(temperature_YAxis);
    this->temperature_node1_series->attachAxis(temperature_XAxis);
    this->temperature_node2_series->attachAxis(temperature_YAxis);
    this->temperature_node2_series->attachAxis(temperature_XAxis);
     //将QChart添加到可视控件中
    this->temperature_chartView->setChart(chart_temperature);

     //下面是湿度线
    QChart*chart_humidity=new QChart();
    chart_humidity->setTitle("湿度曲线");
    chart_humidity->addSeries(this->humidity_node1_series);
    chart_humidity->addSeries(this->humidity_node2_series);

    QValueAxis *humidity_YAxis=new QValueAxis(this);
    humidity_YAxis->setRange(0,100);

    QDateTimeAxis *humidity_XAxis=new QDateTimeAxis(this);
    humidity_XAxis->setRange(from,to);

    chart_humidity->addAxis(humidity_YAxis,Qt::AlignLeft);
    chart_humidity->addAxis(humidity_XAxis,Qt::AlignBottom);

    this->humidity_node1_series->attachAxis(humidity_YAxis);
    this->humidity_node1_series->attachAxis(humidity_XAxis);
    this->humidity_node2_series->attachAxis(humidity_YAxis);
    this->humidity_node2_series->attachAxis(humidity_XAxis);
    this->humidity_chartView->setChart(chart_humidity);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vqt5_qt6

你的鼓励是我们创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值