Qt:绘制折线图时图标以及坐标轴设置

1059 篇文章 285 订阅

1、创建QT GUI应用,基类选择"QMainWindows",在.pro中添加:

QT       += charts

在源文件中添加:

#include  <QtCharts>

2、在构造函数中添加:

 QChartView *chartView = new QChartView(this);

39264c889751231ff527a8d4c09c3d6a7c1.jpg

    QChartView *chartView = new QChartView(this);

    QChart *chart = new QChart();
    chart->setTitle("简单函数曲线");   //图标的名字
    chartView->setChart(chart);
    setCentralWidget(chartView);

c1182781dcacd34b79f2f758f3803b4edd2.jpg

    QChartView *chartView = new QChartView(this);

    QChart *chart = new QChart();
    chart->setTitle("简单函数曲线");   //图标的名字
    chartView->setChart(chart);
    setCentralWidget(chartView);

    //创建曲线序列
    QLineSeries *series0 = new QLineSeries();
    QLineSeries *series1 = new QLineSeries();
    series0->setName("sin曲线");   //自动添加折线名字
    series1->setName("cos曲线");
    chart->addSeries(series0);
    chart->addSeries(series1);

bcddf5cfa370841b1dbbe71f9dba03d5b2e.jpg

    QChartView *chartView = new QChartView(this);

    QChart *chart = new QChart();
    chart->setTitle("简单函数曲线");   //图标的名字
    chartView->setChart(chart);
    setCentralWidget(chartView);

    //创建曲线序列
    QLineSeries *series0 = new QLineSeries();
    QLineSeries *series1 = new QLineSeries();
    series0->setName("sin曲线");   //自动添加折线名字
    series1->setName("cos曲线");
    chart->addSeries(series0);
    chart->addSeries(series1);

    //序列添加数值
    qreal t = 0, y1, y2, intv = 0.1;
    int cnt = 200;
    for(int i = 0; i < cnt; ++i){
        y1 = qSin(t);
        series0->append(t, y1);

        y2=qSin(t+20);
        series1->append(t,y2);

        t+=intv;  //每次角度增加
    }

    //创建坐标
    QValueAxis *axisX = new QValueAxis;
    axisX->setRange(0, 10);//设置坐标轴范围
    axisX->setTitleText("time(secs)");//标题
    axisX->setLabelFormat("%.1f"); //标签格式:每个单位保留几位小数
    axisX->setTickCount(20); //主分隔个数:0到10分成20个单位
    axisX->setMinorTickCount(4); //每个单位之间绘制了多少虚网线
//    axisX->setGridLineVisible(false);

    QValueAxis *axisY = new QValueAxis; //Y 轴
    axisY->setRange(-2, 2);
    axisY->setTitleText("value");
    axisY->setLabelFormat("%.2f"); //标签格式
    axisY->setTickCount(10);
    axisY->setMinorTickCount(4);
//    axisX->setGridLineVisible(false);

    //为序列设置坐标轴
    chart->setAxisX(axisX, series0);
    chart->setAxisY(axisY, series0);

    chart->setAxisX(axisX, series1);
    chart->setAxisY(axisY, series1);

b1ef5bf5b1b8bf49fb0cf7708e14976135a.jpg

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值