• 关于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);
  • 相关阅读:
    【转载】为什么我的网站加www是打不开的呢
    【转载】IIS网站配置不带www域名直接跳转带www的域名
    【转载】IIS网站如何同时解析带www和不带www的域名
    【转载】C#中将字符串分割成字符数组
    Android面试,简要介绍一下asynctask和handler的优缺点
    Android面试题(2)
    Android面试题(1)
    Android -- 与WEB交互在同一个会话Session中通信
    25匹马的角逐
    Android -- 检测耳机插入状态
  • 原文地址:https://www.cnblogs.com/h2zZhou/p/9597578.html
Copyright © 2020-2023  润新知