关于QtCharts中的映射器与模型的使用_qvxymodelmapper-程序员宅基地

技术标签: qt  

简述

本文章基于博主在使用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);
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wjh_init/article/details/78837389

智能推荐

spring batch 理解、特点、使用场景、结构 简单介绍_springbatch-程序员宅基地

文章浏览阅读3.3w次,点赞14次,收藏97次。1…spring batch 的理解—> spring官网 : https://spring.io/projects/spring-batch 目前,Spring Batch是批处理框架界为数不多的优秀框架(Java语言开发) Spring Batch 是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。 Spring Batch是Spring的..._springbatch

博客地址转移www.kongpan.xyz-程序员宅基地

文章浏览阅读574次。搭建了一个个人博客,地址为www.kongpan.xyz转载于:https://www.cnblogs.com/kp1995/p/10880895.html

HDU 2852 KiKi's K-Number 树状数组_kiki's k-number hdu - 2852-程序员宅基地

文章浏览阅读416次。题目:http://acm.hdu.edu.cn/showproblem.php?pid=2852题意:维护一个数据结构,有三种操作:0 e代表把e加入到数据结构中,1 e代表把e从数据结构中删除,2 a k代表求数据结构中大于a的第k大数思路:此题用树状数组可以轻松过,前两种操作也就是直接更新树状数组,第三种操作二分枚举,当树状数组求和sum(mid) - sum(a) = k的时候,m_kiki's k-number hdu - 2852

【问题解决】kersa ModuleNotFoundError: No module named ‘keras_applications‘ kersa_vggface_modulenotfounderror: no module named 'keras_applic-程序员宅基地

文章浏览阅读4.6k次。项目场景:提示:这里简述项目相关背景:ModuleNotFoundError Traceback (most recent call last)/tmp/ipykernel_15865/1435742692.py in /data/run01/scz1637/FER230_tf2.4/models/build.py in 5 from tensorflow.keras.regularizers import l26 from tensorflow.k_modulenotfounderror: no module named 'keras_applications

长整型打印(%ld)%d错误_format ‘%d’ expects argument of type ‘int*’, but a-程序员宅基地

文章浏览阅读2.7k次,点赞4次,收藏3次。一、问题运行下面这串代码是出现以下警告long num = 100;printf("%d\n",num);``format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long int’ [-Wformat=]二、解决改成printf("%ld\n",num)完美解决三、总结长整型用 %ld 来打印整形用 %d 来打印希望下次记住,别再犯同样的错误!!!..._format ‘%d’ expects argument of type ‘int*’, but argument 3 has type ‘f

【技术贴】解决myeclipse SVN 提交代码 commit:remains in tree-c-程序员宅基地

文章浏览阅读74次。【技术贴】解决myeclipse SVN 提交代码 commit:remains in tree-conflict错误的解决办法 错误是:Aborting commit: xxxxx’ remains in conflict Eclipse中的解决办法 右击工程目录–>team–>Show Tree Conflict–>在Eclpise中会出现一个..._commit remains in tree

随便推点

【C语言】一个球从100米高的自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求第10次落地时,共经过多少米,第10次反弹多高。-程序员宅基地

文章浏览阅读2.6k次。//一个球从100米高的自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求第10次落地时,共经过多少米,第10次反弹多高。#include int main(){ float h=100; float s=0; int i; for(i=1;i<10;i++) { h=h/2; s=s+2*h; } printf("第十次的高度为:%f\n",h); prin

pandas NaN转换为None_pandas nat转none-程序员宅基地

文章浏览阅读1.8w次,点赞7次,收藏19次。在python中,用pandas做数据处理非常方便。但是有时候从其他地方读取数据时,会有异常值需要处理。比如,我们要从excel读取数据然后调用接口写入数据库时,读取到的空值是NaN,但是,接口接收的对应单元格数据应该是None,这时候怎么处理呢?当然,用pandas做这个事也是非常容易的。示例如下:原始数据:示例代码:import pandas as pd ..._pandas nat转none

使用echarts中国地图添加气泡时使用接口访问的数据不显示_echart气泡图数据不显示-程序员宅基地

文章浏览阅读644次。这里写自定义目录标题解决方案Vue,使用echarts绘制中国地图添加数据标点时直接使用data中的数据能正常显示,使用接口访问的数据添加或赋值给data中的数据时能正常打印却不能正常显示。解决方案尝试过很多方法都不能解决问题,具体深层原因就先不做深究。暴力解决方法:直接将图表创建的option放在接口then方法中。var Chart = this.$echarts.init(document.getElementById('map')); this.$http.get("...").the_echart气泡图数据不显示

Centos7 pxe-程序员宅基地

文章浏览阅读99次。yum install dnsmasqmv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup# vim /etc/dnsmasq.conf interface=eth0,lo #bind-interfaces domain=centos7.lan # DHCP range-leases dh..._centos7 pxe dnsmasq

java --@Transaction,@Async在同一个类中注解失效的原因和解决办法_java @asyn函数 在当前类中不起作用-程序员宅基地

文章浏览阅读1k次。其实就是在一个类中一个方法 不能调用 另外一个标注为@Async或者@Transaction的方法,否是异步执行失效@Transaction,@Async在同一个类中注解失效的原因和解决办法_baisq2017的博客-程序员宅基地_@async不起作用在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解是不会生效的。比如,下面代码例子中,有两方法,一个有@Async注解,一个没有。第一次如果调用了有注解的test()方法,会启动@Async注解作用;第一次_java @asyn函数 在当前类中不起作用

apt-get方式删除软件-程序员宅基地

文章浏览阅读73次。参考http://www.tennfy.com/1518.htmlapt-get –purge remove删除已安装包(不保留配置文件)。如软件包a,依赖软件包b,则执行该命令会删除a,而且不保留配置文件apt-get autoremove删除为了满足依赖而安装的,但现在不再需要的软件包(包括已安装包)。如软件包a,依赖软件包b,则执行该命令会同时删除软件包a,..._get软件删除

推荐文章

热门文章

相关标签