关于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);
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值