当前位置: 首页 > news >正文

Qt QPieSlice详解

1、概述

QPieSlice 是 Qt 图表模块(Qt Charts)中的一个类,用于表示 QPieSeries 中的单个扇形切片。它是构成饼图的基本元素,每个切片可以设置自己的数值、标签、颜色等属性,用于可视化数据的比例关系。

QPieSlice 通常与 QPieSeries 配合使用,一个 QPieSeries 包含多个 QPieSlice 对象,共同组成一个完整的饼图。通过 QPieSlice,你可以控制每个扇形的外观和行为,包括大小、颜色、标签显示等。

2、重要方法

  • QPieSlice(QString label, qreal value):构造函数,创建一个带有指定标签和数值的扇形切片
  • void setValue(qreal value):设置切片的数值,决定了该切片在饼图中所占的比例
  • qreal value() const:返回切片的数值
  • void setLabel(QString label):设置切片的标签文本
  • QString label() const:返回切片的标签文本
  • void setLabelVisible(bool visible):设置标签是否可见
  • bool isLabelVisible() const:判断标签是否可见
  • void setLabelPosition(QPieSlice::LabelPosition position):设置标签的位置
  • QPieSlice::LabelPosition labelPosition() const:返回标签的位置
  • void setColor(QColor color):设置切片的填充颜色
  • QColor color() const:返回切片的填充颜色
  • void setBorderColor(QColor color):设置切片的边框颜色
  • QColor borderColor() const:返回切片的边框颜色
  • void setBorderWidth(int width):设置切片的边框宽度
  • int borderWidth() const:返回切片的边框宽度
  • void setExploded(bool exploded):设置切片是否从饼图中心向外分离
  • bool isExploded() const:判断切片是否分离
  • void setExplodeDistanceFactor(qreal factor):设置分离距离因子(相对于饼图半径的比例)
  • qreal explodeDistanceFactor() const:返回分离距离因子
  • qreal percentage() const:返回该切片占总数值的百分比(0.0 到 1.0 之间)

3、信号

  • void clicked(bool pressed = false):当切片被点击时发射
  • void hovered(bool hovered):当鼠标悬停在切片上或离开时发射(hovered 为 true 表示进入,false 表示离开)
  • void labelChanged():当标签文本改变时发射
  • void valueChanged():当切片数值改变时发射
  • void explodedChanged():当切片的分离状态改变时发射
  • void colorChanged():当切片颜色改变时发射
  • void borderColorChanged():当边框颜色改变时发射
  • void borderWidthChanged():当边框宽度改变时发射

4、常用枚举

QPieSlice::LabelPosition - 定义标签的位置:

  • QPieSlice::LabelOutside:标签显示在切片外部(默认值)
  • QPieSlice::LabelInsideHorizontal:标签水平显示在切片内部
  • QPieSlice::LabelInsideTangential:标签沿切片切线方向显示在内部
  • QPieSlice::LabelInsideNormal:标签沿切片法线方向显示在内部

5、C++ 实例

#include <QApplication>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QValueAxis>
#include <QtCharts/QAreaSeries>
#include <QLegend>
#include <QPieSlice>QT_CHARTS_USE_NAMESPACEint main(int argc, char *argv[])
{QApplication a(argc, argv);// 创建饼图数据系列QPieSeries *series = new QPieSeries();// 添加数据切片到系列中QPieSlice *slice1 = series->append("苹果", 30);  // 标签为“苹果”,值为30QPieSlice *slice2 = series->append("香蕉", 50);  // 标签为“香蕉”,值为50QPieSlice *slice3 = series->append("橙子", 20);   // 标签为“橙子”,值为20// 设置饼图切片的样式slice1->setColor(Qt::red);  // 设置“苹果”切片的颜色为红色slice2->setColor(Qt::yellow); // 设置“香蕉”切片的颜色为黄色slice3->setColor(Qt::blue); //// 设置切片为可爆炸状态(使得某个切片突出)slice1->setExploded(true);  // “苹果”切片突出显示// 创建图表对象并添加数据系列QChart *chart = new QChart();chart->addSeries(series);chart->setTitle("水果分布饼图");// 创建图表视图并设置为可抗锯齿QChartView *chartView = new QChartView(chart);chartView->setRenderHint(QPainter::Antialiasing);// 创建布局并将图表视图添加到窗口中QWidget window;QVBoxLayout *layout = new QVBoxLayout();layout->addWidget(chartView);window.setLayout(layout);window.setWindowTitle("Qt 饼图示例");window.resize(600, 400);window.show();return a.exec();
}

点击扫码加入群聊

觉得有帮助的话,打赏一下呗。。

           

需要商务合作(定制程序)的欢迎私信!! 

http://www.dtcms.com/a/389543.html

相关文章:

  • C++多线程编程
  • LangChain 父文档检索器:解决 “文档块匹配准” 与 “信息全” 的矛盾
  • COI实验室技能:基于几何光学的物空间与像空间的映射关系
  • springboot-security安全插件使用故障解析
  • 企业移动化管理(EMM)实战:如何一站式解决设备、应用与安全管控难题?
  • 高频面试题——深入掌握栈和队列的数据结构技巧
  • 【C++ qml】qml页面加载配置文件信息的两种方式
  • 运维笔记:神卓 N600 解决企业远程访问 NAS 的 3 个核心痛点
  • GitHub 热榜项目 - 日榜(2025-09-18)
  • 使用开源免费的组件构建一套分布式微服务技术选型推荐
  • 需求质量检测Prompt之是否涉及异常场景
  • QT按钮和容器
  • Kafka4.0 可观测性最佳实践
  • 深入解析 Spring AI 系列:解析函数调用
  • ​​[硬件电路-245]:电气制图软件有哪些
  • 不会索赔500万的苹果,翻车如期到来,不过已没啥影响了
  • 第十一章:AI进阶之--模块的概念与使用(一)
  • 【IoTDB】01 - IoTDB的基本使用
  • 【C++】模版语法基础:认识模版(初识篇)
  • 继承测试用例回归策略
  • 卡普空《怪物猎人》系列策略转变:PC平台成重要增长点
  • UML 顺序图 | 概念 / 组成 / 作用 / 绘制
  • 安装SSL证书后如何测试和验证其是否正确配置?
  • A股大盘数据-20250918分析
  • 容器环境变量管理在云服务器多环境部署中的配置方法
  • 算法练习-排序-选择排序
  • 岭回归(Ridge Regression)在机器学习中的应用
  • python高级编程面试题
  • 模拟ic工程师如何提升自己?
  • springboot flowable 工作流入门与实战