zoukankan      html  css  js  c++  java
  • Qt Charts实践

    Qt Charts的横空出世标志着QWT,QCustomPlot 。。。。。时代的终结,让我们开始使用QtCharts吧

    在Qt 5.7.0中已经集成了Qt Charts模块,需要在安装Qt的时候把Charts模块安装到本地就可以。

    剩下的就是傻瓜安装了,等待安装完后,可以在示例中输入charts来查看原生demo

    剩下的就是实践了

    新建工程,这里我使用的是creater工程,没有使用qml,新建后就是仿照demo写自己的demo

    先上运行截图

    这里有部分代码复制的是Qt的帮助文档中的代码(Qt的帮助文档是我见过最牛逼的帮助文档了)

    简单的项目分解

    第一部分,在工程文件引入Qt Charts模块

    QT       += charts



    剩下的就是在.h中包含需要头文件

    #include <QtCharts>
    #include <QtCharts/QChartView>
    #include <QtCharts/QLineSeries>
    #include <QtCharts/QAreaSeries>



    这里还有一个问题,不知道是我的问题,还是就是需要这样做,这里需要引用命名空间“QtCharts”

    using namespace QtCharts;



    剩下的就是声明变量

        QChart *chart;
        QLineSeries *series0,*series1;
        QAreaSeries *series;
        QChartView *chartView;



    剩下的就是实现内容

    #include "widget.h"
    #include "ui_widget.h"
    
    Widget::Widget(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::Widget)
    {
        ui->setupUi(this);
    
    
    
        chart = new QChart();
        series0 = new QLineSeries();
        series1 = new QLineSeries();
    
    
    
        *series0 << QPointF(1, 5) << QPointF(3, 7) << QPointF(7, 6) << QPointF(9, 7) << QPointF(12, 6)
                 << QPointF(16, 7) << QPointF(18, 5);
        *series1 << QPointF(1, 3) << QPointF(3, 4) << QPointF(7, 3) << QPointF(8, 2) << QPointF(12, 3)
                 << QPointF(16, 4) << QPointF(18, 3);
    
        series = new QAreaSeries(series0, series1);
        series->setName("Batman");
        QPen pen(0x059605);
        pen.setWidth(3);
        series->setPen(pen);
    
    
    
        QLinearGradient gradient(QPointF(0, 0), QPointF(0, 1));
        gradient.setColorAt(0.0, 0x3cc63c);
        gradient.setColorAt(1.0, 0x26f626);
        gradient.setCoordinateMode(QGradient::ObjectBoundingMode);
        series->setBrush(gradient);
    
    
    
    
    
        chart->addSeries(series);
        chart->setTitle("Simple areachart example");
        chart->createDefaultAxes();
        chart->axisX()->setRange(0, 20);
        chart->axisY()->setRange(0, 10);
    
    
        chartView = new QChartView(this);
        chartView->resize(400,300);
        chartView->setChart(chart);
        chartView->setRenderHint(QPainter::Antialiasing);
    
    
    
    
    }
    
    Widget::~Widget()
    {
        delete ui;
    }
    



    这就完成了,是不是很简单了

  • 相关阅读:
    Java基础50道经典练习题(33)——杨辉三角
    Java基础50道经典练习题(32)——左移右移
    团队第二阶段冲刺04
    团队第二阶段冲刺03
    团队第二阶段冲刺02
    团队第二阶段冲刺01
    团队意见汇总
    各组意见汇总
    团队第一阶段冲刺07
    绩效评估01
  • 原文地址:https://www.cnblogs.com/DreamDog/p/9160045.html
Copyright © 2011-2022 走看看