QtCharts模块在QtWideget中图表绘制(非QML)
本文标题:QtCharts模块在QtWideget中图表绘制(非QML) 本文地址:http://techieliang.com/2017/12/724/
1. 介绍
以前一直用QCustomPlot,现在Qt提供了QtCharts,看起来效果比,模块的帮助文档:QtCharts,所有官方的范例:Example
- 以QChartView提供界面显示,继承自QGraphicsView,setChart方法可以在一个view中添加一个chart
- 以QChart作为图表,提供颜色风格,动画效果风格,坐标轴控制,图例显示位置,以及QtCharts提供的一系列图表类型元素的增删改,同时QPolarChart提供极坐标图
- QAbstractSeries作为一系列图形类型的父类,以此接口实现了QAbstractBarSeries柱状图的接口, QAreaSeries面积图, QBoxPlotSeries箱形图, QCandlestickSeries(K线图), QPieSeries饼图和 QXYSeries(散点图/子类有线形图和曲线图),均提供了append等函数用于添加每一项数据
- QXXXXSet提供了复杂图形的每一项数据的添加比如QBoxPlotSeries的append函数不能添加int等基础类型QBoxSet,范例:BarChart Example
- QXXXXAxis提供了一系列坐标轴类,可以使用QChart::setAxisX/setAxisY设置,当然也可以使用QChart::createDefaultAxes使用默认坐标轴类型,范例:DateTimeAxis Example、Logarithmic Axis Example
- QLegend提供图例,范例:Legend Example
- QLegendMarker图例标记 ,QLegend提供的是图例框,里面的每一项应该用QLegendMarker,范例:LegendMarkers Example
- QXXXXMapper映射器,可以从QAbstractItemModel中的数据映射到图表,范例:BarModelMapper Example
2. QChart
提供了三个枚举类型
| enum | AnimationOption { NoAnimation, GridAxisAnimations, SeriesAnimations, AllAnimations } |
| enum | ChartTheme { ChartThemeLight, ChartThemeBlueCerulean, ChartThemeDark, ChartThemeBrownSand, …, ChartThemeQt } |
| enum | ChartType { ChartTypeUndefined, ChartTypeCartesian, ChartTypePolar } |
分别用于定义动画效果、背景风格、以及图标类型是极坐标还是笛卡尔,对于风格方面请见范例Chart Themes Example
Animation不会自己播放,需要在图标刷新时有用,一个是坐标轴和图标网格线一个是series,比如柱状图逐渐升起的过程,最简单的刷新方法:改窗口尺寸
除此以外通过接口可以操作title标题、axis坐标轴,并通过addSeries添加图
3. 其他
- 建议使用Mapper映射到model中,通过修改model可以动态调整表格
- QtCharts的new出的对象都会在add、set以后由上一级管理,不需要主动delete
QtCharts模块在QtWideget中图表绘制(非QML)的更多相关文章
- Android实现图表绘制和展示
本文演示在Android平台中绘制和展示图表示例,本示例是基于RChart 2实现的. 在一个系统中经常要用到图表统计数据,在WEB开发中图表绘制是一件简单的事情,因为有比较多的开源方案.但在Andr ...
- qml: QtCharts模块的使用(基本配置)------<一>
QtCharts模块可以用于绘制图表: 导入模块: import QtCharts 2.2 例子: import QtQuick 2.0 import QtCharts 2.2 ChartView { ...
- 让IE8支持HTML5及canvas功能!chart.js图表绘制工具库IE8上兼容方案
第一步,我们加上对html5的支持. <!--[if IE]> <script src="/public/html5.js" type="text/ja ...
- Android学习之 AChartEngine 图表绘制
Android 开源图表绘制工具AChartEngine地址:http://code.google.com/p/achartengine/ AChartEngine Android实现图表绘制和展示( ...
- 未经处理的异常在 System.Data.dll 中发生。其它信息:在应使用条件的上下文(在 '***' 附近)中指定了非布尔类型的表达式。
机房收费系统中,有些人在联合查询这个模块用的是存储过程.我先尝试着在数据库中建立了一个视图.然后在UI层做个推断并生成查询条件strCondition. 在机房收费系统的"联合查询" ...
- Android中View绘制流程以及invalidate()等相关方法分析
[原文]http://blog.csdn.net/qinjuning 整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简 ...
- 内部类访问外部类的变量必须是final吗,java静态方法中不能引用非静态变量,静态方法中不能创建内部类的实例
内部类访问外部类的变量必须是final吗? 如下: package com.java.concurrent; class A { int i = 3; public void shout() { cl ...
- C# using 三种使用方式 C#中托管与非托管 C#托管资源和非托管资源区别
1.using指令.using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间,类似于Java的import,这个功能也是最常用的,几乎每个cs的程序都会用到. ...
- 查询score中选学多门课程的同学中分数为非最高分成绩的记录。
20.查询score中选学多门课程的同学中分数为非最高分成绩的记录. select * from score a where sno in ( select sno from score group ...
随机推荐
- 树莓派 raspberry系统 VNC View 连接 Cannot currently show the desktop 错误解决
https://www.raspberrypi.org/forums/viewtopic.php?t=216737 我是因为空间不够
- vue中-webkit-box-orient:vertical打包放到线上不显示
解决方法: 1.找到build文件夹 下的webpack.prod.conf.js文件 2.注释new OptimizeCSSPlugin({ css ...
- (数据科学学习手札55)利用ggthemr来美化ggplot2图像
一.简介 R中的ggplot2是一个非常强大灵活的数据可视化包,熟悉其绘图规则后便可以自由地生成各种可视化图像,但其默认的色彩和样式在很多时候难免有些过于朴素,本文将要介绍的ggthemr包专门针对原 ...
- Linux入门第五天——shell脚本入门(下)基础语法之调试debug
一.如何debug 1.通过sh命令的参数: sh [-nvx] scripts.sh 选项与参数: -n :不要执行 script,仅查询语法的问题: -v :再执行 sccript 前,先将 sc ...
- 20155321 实验四 Android程序设计
20155321 实验四 Android程序设计 安装Android studio成功 任务一:Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)( ...
- Kali linux 安装
df -m umount /media exit
- rman的基于窗口的备份保留策略学习
例如: rman>configure retention policy to recovery window of 7 days; 那么就是说,至少要使得保留下来的备份,可以支持恢复到从当前回溯 ...
- [BZOJ1185][HNOI2007]最小矩形覆盖-[凸包+旋转卡壳]
Description 传送门 Solution 感性理解一下,最小矩形一定是由一条边和凸包上的边重合的. 然后它就是模板题了..然而真的好难调,小于大于动不动就打错. Code #include&l ...
- ESP8266 station模式下建立client、server TCP连接
程序实现内容: 1.在station模式下,ESP8266作为client.server进行TCP连接2.实现数据的发送.接收(同时回传)实现思路:TCP网络通信分层为:应用层.网络层.数据链路层.物 ...
- selenium自动化之加载浏览器的配置文件
做seleniumUI自动化关于选用哪个浏览器方面,对于我来说,火狐浏览器只是用于定位元素,因为有firebug(注意高版本的火狐已经安装不了这个插件了),而真正执行自动化脚本用的是谷歌,感觉谷歌的速 ...