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 ...
随机推荐
- c++拆分字符,不拆开中文
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <string.h&g ...
- 20155235 2017-2018-1 《Java程序设计》第2周学习总结
20155235 2017-2018-1 <Java程序设计>第2周学习总结 教材学习内容总结 3.1类型.变量与运算符 类型 基本类型 类类型 变量 基本规则 不可以用数字作为开头,不可 ...
- 20155319《Java程序设计》实验三(敏捷开发与XP实践)实验报告
20155319<Java程序设计>实验三(敏捷开发与XP实践)实验报告 一.实验内容及步骤 (一)使用Code菜单 在IDEA中使用工具(Code->Reformate Code) ...
- 20145207《Java程序设计》实验一(Java开发环境的熟悉)实验报告
<Java 程序设计>实验一(Java开发环境的熟悉)实验报告 目录 改变 Java开发环境的熟悉实验要求 实验成果 课后思考 改变 修改了之前仅仅是贴了图片,连代码都没粘的状态.增加了自 ...
- Android开发——你真的了解Dialog、Toast和Snackbar吗
0. 前言 今天给大家带来一篇简单易懂的关于Android提醒小功能的文章.Dialog和Toast我们都不陌生,而Snackbar是Design Support库中提供的新控件,有些朋友可能还不了解 ...
- 12、Java并发编程:阻塞队列
Java并发编程:阻塞队列 在前面几篇文章中,我们讨论了同步容器(Hashtable.Vector),也讨论了并发容器(ConcurrentHashMap.CopyOnWriteArrayList), ...
- 使用github高级搜索
想瞅瞅github上面有哪些中国开发者最活跃,followers最多.可以按照下面的步骤: 打开github的搜索页面 输入 location:china .点search 然后选择不同的排序方式. ...
- HTTP请求方式:GET和POST的比较
GET和POST是HTTP的两个常用方法 什么是HTTP? 超文本传输协议(HyperText Transfer Prptocol-HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议. HTTP ...
- [bzoj1500][luogu2042][cogs339][codevs1758]维修数列(维护数列)
先给自己立一个flag 我希望上午能写完 再立一个flag 我希望下午能写完. 再立一个flag 我希望晚上能写完... 我终于A了... 6700+ms...(6728) 我成功地立了3个flag. ...
- 在CentOS 7下编译安装Nginx+PHP+MySQL环境
本文转载自:http://www.softeng.cn/?p=156,本文已获得作者授权,未经作者同意,不可转载. 1.前言 本文适合于已经对Linux操作系统具有基本操作经验,并且能够在Linux或 ...