zoukankan      html  css  js  c++  java
  • Qt QChart 折线 QLineSeries

     QLineSeries是一个绘制折线图的类,使用也非常的简单,先看看下面的例子:

     1 #include <QtWidgets/QApplication>  
     2 #include <QtWidgets/QMainWindow>  
     3 #include <QtCharts/QChartView>  
     4 #include <QtCharts/QLineSeries>  
     5 #include <QtCharts/QAreaSeries>  
     6  
     7 QT_CHARTS_USE_NAMESPACE  
     8  
     9 int main(int argc, char *argv[])  
    10 {  
    11     QApplication a(argc, argv);  
    12     
    13     QLineSeries *series = new QLineSeries();  
    14     series->setPen(QPen(Qt::blue,1,Qt::SolidLine)); //设置画笔  
    15     //series->setColor(QColor(0,0,255));  //设置颜色  
    16     
    17     *series << QPointF(1, 5) << QPointF(3, 7) << QPointF(7, 6) << QPointF(9, 7) << QPointF(12, 6)  
    18             << QPointF(16, 7) << QPointF(18, 5);  //添加数据  
    19     
    20     QChart *chart = new QChart();  
    21     chart->addSeries(series);  
    22     chart->setTitle("Simple example");  
    23     chart->createDefaultAxes();   //设置默认的坐标系,如果不设置程序是运行不了的  
    24     chart->axisX()->setRange(0, 20);//设置图表坐标轴的范围,可以不设置,自动调节的  
    25     chart->axisY()->setRange(0, 10);  
    26     
    27     QChartView *chartView = new QChartView(chart);  
    28     chartView->setRenderHint(QPainter::Antialiasing);  //抗锯齿渲染  
    29     
    30     QMainWindow window;  
    31     window.setCentralWidget(chartView);  
    32     window.resize(400, 300);  
    33     window.show();  
    34     
    35     return a.exec();  
    36 }  

    代码很简单,一看就知道在说啥,所以以下归纳和延伸几点:
    1. 使用QtCharts必须先声明的它的命名空间QT_CHARTS_USE_NAMESPACE,当然也可以这样声明using namespace QT_CHARTS_NAMESPACE;
    2. 往折线对象添加数据的时候,除了用<<添加,还可以用append()函数来添加,函数原型如下:

    1 <span style="white-space:pre">    </span>void append(qreal x, qreal y);  
    2 <span style="white-space:pre">    </span>void append(const QPointF &point);  
    3 <span style="white-space:pre">    </span>void append(const QList<QPointF> &points); 

    从上面三个函数说明利用append()函数是比较的灵活,特别是利用QList容器去添加数据,可以一次性去添加数据。 
    3. QLineSeries可以管理已经存在的数据,主要通过下面几个函数。

    1 void insert(int index, const QPointF & point) //往指定位置插入一个点
    2 void remove(const QPointF & point) //移除一个点,还有几个重载函数没有列出
    3 void replace(const QPointF & oldPoint, const QPointF & newPoint) //替代某一个点

    4. QChart是管理图表里面各种对象的一个类,例如曲线 ,坐标轴,图例等,它是在数据层面去管理,本身是不能可视化的,类似QGraphScence一样,必须通过QChartView去做渲染显示。 

    最后的效果图:

  • 相关阅读:
    CentOS安装配置
    扩展多线程应用程序 CLR 和 线程
    OEA体验 :元数据编写
    字符串的逆序之旅
    学习之响应式Web设计:Media Queries和Viewports
    Windows Azure Virtual Machine Role (4) 在VHD中安装需要的功能
    java开发web service快速入门(视频)
    淘宝技术发展(Java时代:脱胎换骨)
    Contoso 大学 使用 EF Code First 创建 MVC 应用
    负载均衡原理与实践详解 第三篇 服务器负载均衡的基本概念网络基础
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14323627.html
Copyright © 2011-2022 走看看