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 ...
随机推荐
- go_json解析
总结: 其他类型转json func Marshal(v interface{}) ([]byte, error) json 转其他类型 func Unmarshal(data []byte, v ...
- HTML5新增元素,标签总结
总是遇到h5新标签的笔试题目,就查阅了资料来总结一下: 1.form相关: (1)form属性:在HTML5中表单元素可放在表单之外,通过给该元素添加form属性来指向目标表单(form属性值设为目标 ...
- spark 例子count(distinct 字段)
spark 例子count(distinct 字段) 例子描述: 有个网站访问日志,有4个字段:(用户id,用户名,访问次数,访问网站) 需要统计: 1.用户的访问总次数去重 2.用户一共访问了多少种 ...
- poj 2349 Arctic Network(prime)
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 25165 Accepted: 7751 Description The ...
- 柴柴随笔第三篇:安装虚拟机以及Linux基础入门
虚拟机的安装 老师提供的作业指南给了我莫大的帮助,一步一步按着其中操作提示和网址链接,我首先下好了VM,也创建好了自己的第一台虚拟机. 接着按照步骤安装了Ubuntu到我的虚拟机. 到此,一切都顺风顺 ...
- 考研编程练习---StringMatching(后缀表达式)
题目描述: Finding all occurrences of a pattern in a text is a problem that arises frequently in text-edi ...
- 记boost在gcc的一个库链接问题generic_category()
报错大致如下: main.cpp:(.text+0x49): undefined reference to `boost::system::generic_category()'main.cpp:(. ...
- React入门基础(学习笔记)
这篇博客是我通过阅读React官方文档的教程总结的学习笔记,翻译可能存在误差,如有疑问请参见http://reactjs.cn/react/docs/tutorial.html . 一.所需文件 在编 ...
- 面试时让你说一个印象最深的bug,该怎么回答
其实,面试官并不关心你描述的这个bug是否真的有价值,或有多曲折离奇?他只是: * 了解你平时工作中的测试能力 所以,这就要求的你平时工作中遇到bug时试着自己去定位,定位bug的过程远比你的单纯的执 ...
- Lua学习笔记(3):运算符
算术运算符 运算符 描述 + 加法运算符 - 减法运算符 * 乘法运算符 / 除法运算符 % 取模运算符 ^ 乘幂 A=3 print(A^2)输出9 关系运算符 ~= 不等于 == 等于 > ...