Qt-绘制圆饼图等-转摘
Qt 有许多模块,如 Core、GUI、Widgets、WebEngine、QML等。其中 Charts 模块,包含了一系列有关图表的组件,使用的是 Qt 的 Graphics View 框架,该模块以前只在商业版中才有。
从 Qt 5.7 开始,该模块通过 GPLv3 许可,已经对 Qt 开源版开放使用。
1 饼图 (pie chart)
1.1 Charts 模块
.pro 中添加如下语句:
QT += charts
头文件和命名空间
#include <QtCharts>using namespace QtCharts;
1.2 代码示例
1) 头文件
Qt 中实现饼图的例程,主要使用了 QPieSeries + QPieSlice + QChart + QChartView 这四个类,如下所示: #1 ~ #5 声明了头文件
1 #include <QtWidgets/QApplication> 2 #include <QtWidgets/QMainWindow> 3 #include <QtCharts/QChartView> 4 #include <QtCharts/QPieSeries> 5 #include <QtCharts/QPieSlice> 6 7 using namespace QtCharts;
实际上也可用两个头文件代替:
#include <QtWidgets> #include <QtCharts>
2) QPieSeries 类
#13 ~ #16 新建 QPieSeries 类指针,并将其分为三份,各占 10%,20% 和 70%;#17 设置标签属性,使其可见;
9 int main(int argc, char *argv[]) 10 { 11 QApplication a(argc, argv); 12 13 QPieSeries *series = new QPieSeries(); 14 series->append("10%", 1); 15 series->append("20%", 2); 16 series->append("70%", 7); 17 series->setLabelsVisible();
3) QPieSlice 类
#19 ~ #24 使用 QPieSlice 设置每一份的颜色,分别为:红、绿、蓝;
19 QPieSlice *slice_red = series->slices().at(0); 20 QPieSlice *slice_green = series->slices().at(1); 21 QPieSlice *slice_blue = series->slices().at(2); 22 slice_red->setColor(QColor(255,0,0,255)); 23 slice_green->setColor(QColor(0,255,0,255)); 24 slice_blue->setColor(QColor(0,0,255,255));
4) QChart 和 QChartView
#26 ~ #29 新建 QChart 类指针,并将 series 添加到 chart 中,然后设置标题和隐藏图例;
#31 ~ #32 新建 QChartView 类指针,然后将 chart 添加到 chartview 中,设置其渲染属性为 “抗混叠” (QPainter::Antialiasing);
#34 ~ #37 新建 QMainWindow 类对象,并将 chartview 置于中间 (setCentralWidget() 函数),然后重设其大小,并 show() 出来。
26 QChart *chart = new QChart(); 27 chart->addSeries(series); 28 chart->setTitle("PieChart Example"); 29 chart->legend()->hide(); 30 31 QChartView *chartview = new QChartView(chart); 32 chartview->setRenderHint(QPainter::Antialiasing); 33 34 QMainWindow window; 35 window.setCentralWidget(chartview); 36 window.resize(480, 360); 37 window.show(); 38 39 return a.exec(); 40 }
输出如下:
2 圆环图 (donut chart)
#4 用的是 Qt 中的命名空间声明,等效于 using namespace QtCharts
圆环图中间有空,对应 #11,设置了中间孔的尺寸大小;另外,#21 设置了圆环图的显示主题,#22 设置的是图例的字体;其它代码,饼图的大同小异。
1 #include <QtWidgets>2 #include <QtCharts>3 4 QT_CHARTS_USE_NAMESPACE5 6 int main(int argc, char *argv[])7 {8 QApplication a(argc, argv);9 10 QPieSeries *series = new QPieSeries(); 11 series->setHoleSize(0.35); 12 series->append("Protein 4.2%", 4.2); 13 series->append("Carbs 56.4%", 56.4); 14 series->append("Other 23.8%", 23.8); 15 16 QChartView *chartView = new QChartView(); 17 chartView->setRenderHint(QPainter::Antialiasing); 18 chartView->chart()->setTitle("DonutChart Example"); 19 chartView->chart()->addSeries(series); 20 chartView->chart()->legend()->setAlignment(Qt::AlignBottom); 21 chartView->chart()->setTheme(QChart::ChartThemeBlueCerulean); 22 chartView->chart()->legend()->setFont(QFont("Arial", 7)); 23 24 QMainWindow window; 25 window.setCentralWidget(chartView); 26 window.resize(400, 300); 27 window.show(); 28 29 return a.exec(); 30 }
输出界面如下:
Qt-绘制圆饼图等-转摘相关推荐
- qt绘制一圈圆_Qt绘制圆
最近开始折腾Qt了,手头上的一个项目需要用到Qt来绘制一些简单图像. 记录下Qt绘制圆的过程: 对于以A为圆心,半径为R的圆,外部有一个外切的正方形,正方形上有B点.如下图所示: 对于void QPa ...
- QT绘制嵌套的圆饼状图
QT绘制嵌套的圆饼状图 项目简介 项目技术 项目展示 主要源码片段解析 获取完整项目源码传送门 项目简介 使用QPieSeries API创建嵌套的甜甜圈图. 项目技术 qt5.12,qt chart ...
- QT绘制具有向下钻取效果的园饼图
QT绘制具有向下钻取效果的园饼图 项目简介 项目技术 项目展示 主要源码片段解析 获取完整项目源码传送门 项目简介 实现具有向下钻取效果的饼图. 项目技术 qt5.12,qt charts模块,C++ ...
- QT绘制饼图和自定义饼图切片
QT绘制饼图和自定义饼图切片 项目简介 项目技术 项目展示 主要源码片段解析 获取完整项目源码传送门 项目简介 创建一个简单的饼图以及如何对饼图切片进行一些自定义. 项目技术 qt5.12,qt ch ...
- 【原创】QT 绘制饼图,曲线图,柱状图,详解。
用QT绘制数据图表.刚开始感觉不知如何下手,在参考了网上的文章后(部分代码来自网上),现学现卖,把饼图,曲线图,柱状图全部做到一起了.不啰嗦,上图!!! QT 是面向对象的编程语言, 图形库的用法比较 ...
- Qt绘制直线、矩形、圆
Qt绘制直线.矩形.圆 新建一个Qt Widgets Application工程 添加头文件 #include <QPainter> 添加paintEvent函数,代码如下: void M ...
- 使用Pillow绘制圆、矩形、饼图、圆弧以及绘制文字
导读 Pillow是Python中一个常用的图像处理库,这篇文章我们就来介绍一下如何通过Pillow来实现在图片上绘制各种图像以及文字. 安装 pip install Pillow 绘制文字 下载字体 ...
- python绘制饼图双层_有趣!如何用Python-matplotlib绘制双层饼图及环形图?
(1) 饼图(pie),即在一个圆圈内分成几块,显示不同数据系列的占比大小,这也是我们在日常数据的图形展示中最常用的图形之一. 在python中常用matplotlib的pie来绘制,基本命令如下所示 ...
- 在DataGridView控件中一次显示出多个圆饼图的原始程序代码
之前我们曾经提到过,您可以在Windows Form窗体上的一个DataGridView控件中一次显示出多个圆饼图(或其它形式的统计图表)以便能够一次检视多个群组数据的比例情况(如图表1所示).当时并 ...
最新文章
- 剑指Offer_编程题_22
- Windows7中启动Mysql服务时提示:拒绝访问的一种解决方式
- 并查集【CF731C】Socks
- SpringBoot是如何解析参数的
- Java每天学习一点点 09.10.13
- 医学实验室质量和能力认可准则在实验室信息系统的应用说明CNAS-CL35
- 贺利坚老师汇编课程29笔记:在代码段使用栈将程序定义的数据逆序
- 20165320 第六周学习总结
- ios开发收藏按钮_即刻APP收藏按钮的实现
- 微信小程序(三)自定义分享按钮和原生分享区分不同按钮的分享带参数分享和获取
- OPENMP学习笔记(1)——简介,模型,运行
- 密码学0930大作业
- mysql特殊符号无法储存_解决MYSQL数据库无法保存emoji表情及特殊符号问题
- IntelliJ IDEA查看类层次结构图
- Bilibili视频爬虫
- Google英文SEO优化更注重实效性
- 单摆matlab建模,用matlab求解单摆模型
- [陇剑杯2021] 复现
- 区块链最强招聘会来袭,毕业就拿百万年薪!
- 在eclipse中导入jor(开源报表)工程
热门文章
- 考研复试——通信原理专业课问答
- 基于Springboot+Vue的电子购物商城设计
- 让客户在微信上查看订单详情,【单据分享】让你省心又省力!
- cad展点插件lisp使用_单曲线坐标计算并展点用CAD_lisp函数
- jzoj 6798. 【2014广州市选day2】regions
- iOS 基于CTMediator的组件化方案
- 平面一般方程的3D旋转平移变换
- 还在为多维度数据分析烦恼?我来教你一招摆平!
- 深扒,用 6 部分讲完 Java 性能调优:多线程 + 设计模式 + 数据库
- 用python写一个基于直方图比图的代码