QChart笔记1:简单线性图LineSeries

 对QChart不太熟悉,今天开始研究一下,记录下来研究的过程。QChart是专门画图表的类,这里先从最简单的线性图表开始。

QLineSeries类,一种折线图,用于将信息显示为由直线连接的一系列数据点。可通过append()函数直接添加点。直线上的点只需添加线两头的点即可,中间的点可加也可不加。

创建一个MainWindow的QT程序。关键代码:

.pro文件。这里需要添加QT += charts

QT       += charts

main.cpp文件,除了添加必要的头文件外,还要添加_CHART_USE_NAMESPACE

#include "mainwindow.h"

#include <QApplication>
#include <QtCharts/QLineSeries>
#include <QtCharts/QValueAxis>
#include <QChart>
#include <QChartView>
QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QLineSeries *series = new QLineSeries();
    series->append(0, 6);
    series->append(2, 4);
    series->append(3, 8);
    series->append(5, 6);
    series->append(7, 4);
    series->append(10, 5);
    series->append(11, 1);
    series->append(12, 2);
    series->append(13, 3);
    series->append(17, 6);
    series->append(18, 3);
    series->append(20, 2);

    QChart *chart = new QChart();
    chart->addSeries(series);
    chart->setTitle("LineChart");
    chart->setAnimationOptions(QChart::SeriesAnimations);
    chart->legend()->hide();
    chart->createDefaultAxes();    
    chart->axes(Qt::Vertical).at(0)->setRange(0, 8);//设置y轴,x轴这里默认
    QChartView *chartView = new QChartView(chart);
    chartView->setRenderHint(QPainter::Antialiasing);


    MainWindow w;
    w.setCentralWidget(chartView);
    w.show();
    return a.exec();
}

效果图如下

QChartView自带带缩放功能,但需要以下代码开启:

chartView->setRubberBand(QChartView::RectangleRubberBand);

在QChartView上按住鼠标左键并拖动,会放大。点击鼠标右键,会缩小。

函数参数时枚举类型:

enum  RubberBand {
        NoRubberBand = 0x0,        //不缩放
        VerticalRubberBand = 0x1,        //垂直方向可缩放
        HorizontalRubberBand = 0x2,        //水平方向可缩放
        RectangleRubberBand = 0x3        //垂直和水平方向都可以缩放
};

QSplineSeries是QLineSeries的子类,它画出的线更圆滑,没有棱角。

把上面代码中的QLineSeries更改为QSplineSeries,会得到如下的图。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值