Qt QChart 创建图表
Qt QChart 创建图表
@
效果
流程
q(value 数据)
q-->s1(QPieSlice)-->ps(QPieSeries)--饼状图-->c(QChart)-->v(QChartView)-->w(QWidget)
q-->s2(...)-->ps
q-->bs(QBarSet)-->b(QBarSeries)--柱状图-->c
q-->bs1(...)-->b
q-->p(QPointF)-->l(QLineSeries/QSplineSeries)--折/曲线图-->c
q-->p1(...)-->l
l1(QLineSeries upper)-->a(QAreaSeries)--区域图-->c
l2(QLineSeries lower)-->a
代码
1. 饼图
// 保存多个扇形
QList<QPieSlice *> slices;
for (int i = 1; i <= 10; ++i)
{
// 创建一个扇形
QPieSlice * slice = new QPieSlice(QString::number(i),i);
slices << slice;
}
// 创建一个饼图系列
QPieSeries * pieSeries = new QPieSeries;
// 当鼠标悬浮时设置标签可见,设置饼图扇形分离
QObject::connect(pieSeries,&QPieSeries::hovered
, [](QPieSlice *slice, bool state) {
slice->setLabelVisible(state);
slice->setExploded(state);
});
// 将所有扇形所加到饼图中
pieSeries->append(slices);
// 创建一个图表
QChart * chart = new QChart;
// 设置标题
chart->setTitle(QStringLiteral("饼图"));
// 设置动画
chart->setAnimationOptions(QChart::AllAnimations);
// 设置图表的系列
chart->addSeries(pieSeries);
// 创建图表视图,显示图表
pView = new QChartView(chart);
// 设置抗锯齿
pView->setRenderHint(QPainter::Antialiasing);
// 添加图表视图到布局
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(pView);
2. 柱图
// 保存柱集合
QList<QBarSet *> sets;
for (int i = 1; i <= 5; ++i)
{
// 创建一个柱集合
QBarSet * set = new QBarSet(QString("set").append(QString::number(i)));
QList<qreal> values;
for (int j = 1; j <= 5; ++j)
{
values << qrand()%100;
qDebug() << values;
}
set->append(values);
sets << set;
}
// 创建一个柱图系列
QBarSeries * barSeries = new QBarSeries;
// 添加柱集合
barSeries->append(sets);
QChart * chart = new QChart;
chart->setTitle(QStringLiteral("柱状图"));
chart->setAnimationOptions(QChart::AllAnimations);
chart->addSeries(barSeries);
pView = new QChartView(chart);
pView->setRenderHint(QPainter::Antialiasing);
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(pView);
3. 折/曲线图
// 创建并保存点信息
QList<QPointF> points;
points << QPointF(0, -1) << QPointF(2, 2) << QPointF(3, 5) << QPointF(5, -5)
<< QPointF(6, 0) << QPointF(7, 3);
// 创建线图系列
QLineSeries * lineSeries = new QLineSeries;
// 曲线
//QSplineSeries * lineSeries = new QSplineSeries;
// 追加点
lineSeries->append(points);
QChart * chart = new QChart;
chart->setTitle(QStringLiteral("线图"));
chart->setAnimationOptions(QChart::AllAnimations);
chart->addSeries(lineSeries);
pView = new QChartView(chart);
pView->setRenderHint(QPainter::Antialiasing);
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(pView);
4. 区域图
QList<QPointF> pointsLower;
pointsLower << QPointF(0, -1) << QPointF(2, 2) << QPointF(3, 5) << QPointF(5, -5)
<< QPointF(6, 0) << QPointF(7, 3);
// 创建一条线
QLineSeries * lineSeriesLower = new QLineSeries;
lineSeriesLower->append(pointsLower);
QList<QPointF> pointsUpper;
pointsUpper << QPointF(0, -1) << QPointF(2, 4) << QPointF(3, 3) << QPointF(5, 3)
<< QPointF(6, 1) << QPointF(7, 5);
// 创建另一条线
QLineSeries * lineSeriesUpper = new QLineSeries;
lineSeriesUpper->append(pointsUpper);
// 两条线组成面
QAreaSeries * areaSeries = new QAreaSeries(lineSeriesLower, lineSeriesUpper);
QChart * chart = new QChart;
chart->setTitle(QStringLiteral("区域图"));
chart->setAnimationOptions(QChart::AllAnimations);
chart->addSeries(areaSeries);
pView = new QChartView(chart);
pView->setRenderHint(QPainter::Antialiasing);
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(pView);
Qt QChart 创建图表的更多相关文章
- C/C++ QT QChart 绘制组件应用
QtCharts 组件是QT中提供图表绘制的模块,该模块可以方便的绘制常规图形,Qtcharts 组件基于GraphicsView模式实现,其核心是QChartView和QChart的二次封装版. 在 ...
- python使用VBA:Excel创建图表(转)
# -*- coding: utf-8 -*- """ Created on Thu Mar 06 11:22:03 2014 @author: Administrato ...
- Vue 爬坑之路(八)—— 使用 Echarts 创建图表
在后台管理系统中,图表是一个很普遍的元素.目前常用的图标插件有 charts, Echarts, highcharts.这次将介绍 Echarts 在 Vue 项目中的应用. 一.安装插件 使用 c ...
- C# 在PPT幻灯片中创建图表
图表能够很直观的表现数据在某个时间段的变化趋势,或者呈现数据的整体和局部之间的相互关系,相较于大篇幅的文本数据,图表更增加了我们分析数据时选择的多样性,是我们挖掘数据背后潜在价值的一种更为有效地方式. ...
- Vue怎么使用Echarts创建图表
摘要:在后台管理系统中,我们经常会遇到图表,比如说:柱形图,饼状图,折线图,雷达图等等,而用来写图表插件有很多,我这里主要介绍Echarts在项目里怎么使用,官网地址如下:https://echart ...
- PyQt5 - 01 使用qt creator创建第一个pyqt5界面程序
1. 安装Qt Creator qt creator下载点我 2. 利用Qt Creator创建界面 点击文件 -> 新建文件或项目 选择Qt -> Qt设计师界面类 选择一个模版,创建一 ...
- 如何在Qt Creator 创建一个.pri文件
如何在Qt Creator 创建一个.pri文件 2013年10月09日 ⁄ 综合 ⁄ 共 254字 ⁄ 字号 小 中 大 ⁄ 评论关闭 这个问题很少人写,因为比较简单,但是让却让我花了好大功夫才 ...
- 用qt creator创建可继承ui类
https://jingyan.baidu.com/article/5d368d1efa2dd73f60c05786.html 用qt creator创建可继承ui类 听语音 | 浏览:1657 | ...
- Unity可视化数据:创建图表
本文由Aoi翻译,转载请注明出处.文章来自于catlikecoding,原文作者介绍了Unity制作图表.可视化数据的方法.更多的名词解释内容,请点击末尾的“原文链接”查看. 介绍 这个教程里,我 ...
随机推荐
- Mac磁盘清理工具——CleanMyMac
许多刚从Windows系统转向Mac系统怀抱的用户,一开始难免不习惯,因为Mac系统没有像Windows一样的C盘.D盘,分盘分区明显.因此这也带来了一些问题,关于Mac的磁盘的清理问题,怎么进行清理 ...
- 巧妙使用MathType快速编写数学函数公式
在我们日常的工作与学习中,你是否也会遇到过无法在电脑中编写数学函数公式的情况呢? 简单的数学函数公式或许经过我们不懈的努力也可以成功的编写,不过这会耽误我们大把的时间. 想象一下,假如你的老板急着催你 ...
- 下载器Folx扩展程序支持哪些浏览器
Folx使用多线程的下载方式大大提升了下载的速度,可以完全替代浏览器自带的下载工具,使下载文件的管理更加简单高效.但是,必须给浏览器安装Folx扩展程序,才能使用Folx下载页面链接. Folx在偏好 ...
- 将input 的文本框改为不可编辑状态
<input type="text" id = "textid" name="名称" value="值" size ...
- web服务器是啥
什么是web服务器 参考 https://www.cnblogs.com/zhaoyl/archive/2012/10/10/2718575.html 了解nginx之前,先了解下什么是web服务器吧 ...
- Java基础教程——转换流
转换流 通常,Window默认的编码方式是GBK,Java项目一般建议设为UTF-8编码.这时候读取文件可能出现乱码.事实上实际应用中编码格式不匹配的场景非常多. 转换流可以指定编码方式,用于解决乱码 ...
- 测试:ADB
配置 JAVA: 1.安装jdk的按抓包(傻瓜式安装不需要更改路径) 2.我的电脑右击属性--高级系统设置--环境变量--用户变量--新建:JAVA_HOME C:\Program Files\Jav ...
- 华为模拟器ensp老是弹出一堆英文up down,关闭
英文内容: Mar 25 2015 20:38:21-08:00 Huawei DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5.25.191.3.1 co ...
- 第4.6节 print、import及断言
一.print函数 前面第二章介绍了print的语法,其语法如下: print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) ...
- PyQt(Python+Qt)学习随笔:model/view架构中支持QListView列表中展示图标的两种方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在QListView列表视图中的项不但可以展示文字,也可以展示图标和复选框,同时可以指定项是否可以拖 ...