Qt图表视图

#ifndef DCHART_H
#define DCHART_H

#include <QWidget>
#include <QChart>  //图标
#include <QChartView> //图标视图

QT_CHARTS_USE_NAMESPACE //using namespace QT_CHARTS_NAMESPACE

QT_BEGIN_NAMESPACE
namespace Ui
{
    class DChart;
}
QT_END_NAMESPACE

class DChart : public QWidget
{
    Q_OBJECT

public:
    DChart(QWidget *parent = nullptr);
    ~DChart();

private:
    Ui::DChart *ui;
};
#endif // DCHART_H
#include "Dchart.h"
#include "ui_Dchart.h"
#include <QValueAxis> //坐标轴
#include <QSplineSeries> //曲线
#include <QLineSeries> //折线
#include <QPen>

DChart::DChart(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::DChart)
{
      ui->setupUi(this);
      //创建图表视图
      //QChartView* char_view = new QChartView(this);


      //创建一个图表(图表放到视图里)
      QChart *chart = new QChart();

      //创建坐标轴
      QValueAxis *valueAxis_x = new QValueAxis(); //x轴
      QValueAxis *valueAxis_y = new QValueAxis(); //y轴


      //设置坐标轴的范围
      valueAxis_x->setRange(0,5000);
      valueAxis_y->setRange(0,100);

      //设置坐标轴的标题和显示的格式
      valueAxis_x->setTitleText("时间/ms");
      valueAxis_y->setTitleText("温度/°C");
      valueAxis_x->setLabelFormat("%d"); //显示格式,%f,小数
      valueAxis_y->setLabelFormat("%d");

      //设置范围份数
      valueAxis_x->setTickCount(10);
      valueAxis_y->setTickCount(10);


      //图表添加坐标轴
      chart->createDefaultAxes(); //清除原有的坐标轴,创建新的坐标轴
      chart->addAxis(valueAxis_x,Qt::AlignBottom);
      chart->addAxis(valueAxis_y,Qt::AlignLeft);

      //设置图标的标题和图例
      chart->setTitle("温度与时间曲线");
      //chart->legend()->setVisible(false);//图例不可见

       //创建曲线对象,添加曲线的点,设置曲线的颜色
      QSplineSeries *splineseries = new QSplineSeries();
      splineseries->append(0,50);
      splineseries->append(1000,60);
      splineseries->append(2000,80);
      splineseries->append(3000,50);
      splineseries->append(4000,30);
      splineseries->append(5000,80);

      QPen pen(QColor(0xff5566));
      splineseries->setPen(pen);

      //图标添加曲线
      chart->addSeries(splineseries);

      //将线的数据与坐标轴联系起来,附属到坐标轴上
      splineseries->attachAxis(valueAxis_x);
      splineseries->attachAxis(valueAxis_y);

      //把图表放到图表视图里
      ui->chart_view->setChart(chart);

}

DChart::~DChart()
{
    delete ui;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值