| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 游戏开发 -> QPieSeries QPieSlice label 标签重叠解决方案 -> 正文阅读 |
|
|
[游戏开发]QPieSeries QPieSlice label 标签重叠解决方案 |
|
demo 下载地址在最后 通常我们在用QPieSeries 做饼状图,并且饼状图几个部分差别不太大时,label 标签展示都是正常的,期望如下图:
一般情况下做这种饼状图很简单,如:
?我们展示了三个标签,数据分别是22, 35 和 97,label 展示的也都正常。但是有一种情况,就是当其中两个数据很小时,会出现标签label 重叠的问题,例如我们将pie的三组数据分别更改为 1, 2 和 97时,就会label就会重叠:
?这显然不是我们想要的。但是怎么样才能避免这种标签重叠的现象呢?其实原理很简单,出现这种情况的原因有两个:
第二点就是我们要解决这种情况的切入点。? 因为添加? slice 的顺序就是从起始角度开始展示的顺序,例如上面错误的图我们添加的顺序就是小,小,大的顺序,也就是从起始角度(12点钟方向开始顺时针添加),结果就会造成上面的现象。
那么我们添加两个最小的 slice 分别显示在起始角度的两侧,那么添加顺序就应该是 小、大、小了,也就是优化一下添加顺序, 就能得出让我们满意的结果。
两个新的问题:
解决方案:?我们要解决上面的问题,就要写成一个通用的控件,如果有n个slice,我们就需要对每个slice 按照 数值大小进行排成 : “小-大-小-大...” 的顺序。 如果对每个slice有固定颜色的需求(例如,出勤人数使用绿色,缺勤人数使用红色),我们需要将颜色与slice 进行绑定,没有此需求的可以略过。为做成通用类型,我们slice 绑定固定的颜色。 所以,我们需要将每个slice 信息封装成一个结构体 SliceInfo:
所以,对于n个slice ,我们需要封装一个方法,能够根据 n个SliceInfo 创建排好序的 n个 QPieSlice 对象。然后我们只需要将获取的QPieslice 对象依次添加到 QPieSeries 中即可:
这样,我们就可以在获取信息后进行创建一系列排好序的slice了
?这样我们就用一个通用的方法来解决了QPieSeries QPieSlice label 标签重叠的问题。 |
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/5 13:50:52- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |