zoukankan      html  css  js  c++  java
  • 关于QtCharts中的映射器与模型的使用

    简述

    本文章基于博主在使用QtCharts中一些经验总结,相关了Qt类有QVXYModelMapper,CustomTableModel(一个继承了QAbstractTableModel的类,用于实现自己的model),QScatterSeries与QLineSeries

    • QVXYModelMapper简述与简单功能演示

    QVXYModelMapper简述与简单功能演示

    简述

    QVXYModelMapper类是线,样条线和分散线系列的垂直模型映射器。 
    模型映射器可以使用派生自QAbstractItemModel类的数据模型作为图表的数据源。 垂直模型映射器用于创建线,样条线或散点图系列与以列连续保存连续数据点坐标的数据模型之间的连接。模型和系列属性都可以用来操纵数据。 模型映射器使系列和数据模型保持同步。

    功能演示

    //头文件声明mapper与mapper2等变量
    ...
    //cpp文件
    chart = new QChart;
    chart->setAnimationOptions(QChart::AllAnimations);//启动chart的所有动画
    model = new CustomTableModel;//初始化自定义模型
    mapper = new QVXYModelMapper(this);
    mapper2 = new QVXYModelMapper(this);
    //series 1 系列1
    oneSeries = new QLineSeries;//这是一个线性系列
    oneSeries->setName("Line 1");
    mapper->setXColumn(2);//用model的第三和第四系列来映射
    mapper->setYColumn(3);//
    mapper->setSeries(oneSeries);
    mapper->setModel(model);
    chart->addSeries(oneSeries);
    ......
    chartView = new QChartView(chart);
    chartView->setRenderHint(QPainter::Antialiasing);

    在model数据更新过后

    //使用默认的坐标(一定要用不然不会显示图表)
    chart->createDefaultAxes();
    //使用你自己自定义的坐标轴(使用自定义model中的函数从model中获得行列的最大最小值)
    int xmin, xmax, ymin, ymax;
    int wjh, dcc;
    xmin = model->getXMin();
    xmax = model->getXMax();
    wjh = (xmax - xmin)/4;
    ymin = model->getYMin();
    ymax = model->getYMax();
    dcc = (ymax - ymin) / 4;
    chart->axisX()->setRange(xmin-wjh,xmax+wjh);
    chart->axisY()->setRange(ymin-dcc,ymax+dcc);
  • 相关阅读:
    第四次作业—— 分析比较各种软件构建环境
    如何实现点击事件触发之后刷新还保存原值
    简单理解js闭包
    javascript中 __proto__与prorotype的理解
    原生和jQuery的ajax用法
    getElementById和querySelector方法的区别
    关于javascript闭包理解
    第二篇 进销存管理系统冲刺博客
    个人项目:WC
    自我介绍+软工五问
  • 原文地址:https://www.cnblogs.com/h2zZhou/p/9597578.html
Copyright © 2011-2022 走看看