PyQt6基础_QCharts绘制饼状图

article/2025/7/13 3:26:55

前置:

PyQt6中没有QtCharts包,需要安装 pip install PyQt6-Charts

结果:

1 高亮内容固定突出,并显示文本

2 鼠标悬浮在其他扇区,临时突出显示并显示文本

代码:

import sys
from PyQt6.QtCore import Qt,QSize
from PyQt6.QtGui import QPainter, QPen
from PyQt6.QtWidgets import QApplication,QWidget,QVBoxLayout
from PyQt6.QtCharts import QChart, QChartView, QPieSeries,QPieSliceclass PieChart(QWidget):def __init__(self,data:dict):super().__init__()'''data = {title:strtarget_int: int  # 高亮值的索引data_list: [(str,float,str),(str,float,str)...]}'''self.setMinimumSize(QSize(600,400))self.data = dataself.series = QPieSeries()for item in self.data['data_list']:item_str = f"{item[0]} {item[1]} {item[2]}"self.series.append(item_str,item[1])passself.series.hovered.connect(self.series_hovered)self.slice = self.series.slices()[self.data['target_int']]self.slice.setExploded()self.slice.setLabelVisible()self.slice.setPen(QPen(Qt.GlobalColor.darkGreen, 2))self.slice.setBrush(Qt.GlobalColor.green)self.chart = QChart()self.chart.addSeries(self.series)self.chart.setTitle(self.data['title'])self.chart.legend().hide()self._chart_view = QChartView(self.chart)self._chart_view.setRenderHint(QPainter.RenderHint.Antialiasing)layout = QVBoxLayout()layout.addWidget(self._chart_view)self.setLayout(layout)passdef series_hovered(self,a0:QPieSlice,state:bool):if a0 == self.slice:returnif state:a0.setExploded()a0.setLabelVisible()else:a0.setExploded(False)a0.setLabelVisible(False)passif __name__ == "__main__":app = QApplication(sys.argv)pre_data = {'title':'测试饼状图','target_int':2,'data_list':[('长江水电',100,'10%'),('京沪高铁',200,'20%'),('贵州茅台',400,'40%'),('农业银行',50,'5%'),('长电科技',250,'25%')]}window = PieChart(pre_data)window.show()sys.exit(app.exec())


http://www.hkcw.cn/article/qVWHBOgZWm.shtml

相关文章

Cache数据库的高可用架构设计与选择

一、Cache数据库的高可用架构 对于Cache数据库的高可用性最佳实践,官方提供了以下几种策略: 集成基于操作系统级HA软件以及搭配共享存储的故障转移集群 基于操作系统的HA软件,搭配共享存储的方案,Cache实例安装在共享存储中&#…

开源协议:构建全球技术协作的基石

文章目录 一、开源协议的本质与存在价值(一)开源协议的定义与法律属性(二)开源协议的历史演进(三)开源协议的核心价值 二、主流开源协议分类与核心特性(一)宽松协议(Perm…

MySQL事务及其原理

事务是一组操作的集合,这组集合要么同时成功,要么同时失败 MySQL事务默认是自动提交的,也就是说每一条sql语句就是一条事务 查看/设置事务提交方式 关闭自动提交只有在其所在的查询窗口有效 select autocommit; --查看提交方式 SET autoc…

Spring生命周期中织入代理逻辑

在Spring生命周期中织入代理逻辑 一,AOP 自动代理的实现机制如何判断某个 Bean 是否需要被代理?代理对象在哪个生命周期节点创建? 二,底层实现逻辑1,自动代理的实现实例化AwareBeanPostProcessorSmartInstantiationAwa…

参数化建模(三):SOLIDWORKS中的参数化应用实例

在现代工程设计领域,参数化设计已成为提升设计效率、优化产品性能、实现智能制造的重要手段。尤其是在三维建模软件SOLIDWORKS中,参数化设计的理念和方法被广泛应用,极大地推动了机械、建筑、电子等行业的创新发展。 那么,什么是…

STM32G4 电机外设篇(二) VOFA + ADC + OPAMP

目录 一、STM32G4 电机外设篇(二) VOFA ADC OPAMP1 VOFA1.1 VOFA上位机显示波形 2 ADC2.1 用ADC规则组对板载电压和电位器进行采样 3 OPAMP(运放)3.1 结合STM32内部运放和ADC来完成对三相电流的采样3.2 运放电路分析 附学习参考…

KVM 安装 Ubuntu 22

在 KVM 中安装 Ubuntu 22 虚拟机。 首先创建硬盘文件 sudo qemu-img create -f qcow2 /app/vms/ubuntu22.qcow2 100G安装Ubuntu 22 sudo virt-install \--name ubuntu22 \--ram 4096 \--vcpus 2 \--disk path/app/vms/ubuntu22.qcow2,formatqcow2 \--os-type linux \--os-va…

【Python】第二弹:搭建 Python 环境

目录 一、安装 Python 第一步:找到官方网站 第二步:找到下载页面 第三步:双击安装包 第四步:运行 hello world 二、安装 PyCharm 第一步:找到官方网站 第二步:找到下载页面 第三步:双击安装包 第四步:运行 hello world 三、PyCharm 基本设置 3.1 设置字体大…

城市内涝精准监测・智能预警・高效应对:治理方案解析

城市化进程加速与极端天气频发叠加,城市内涝对城市安全运行和居民生活的威胁日益凸显。多地频发的强降雨引发严重内涝,"看海"现象、交通瘫痪及财产损失等问题,暴露出传统内涝防治体系在监测精准度、预警及时性和应对高效性上的不足…

解决RAGFlow(v0.19.0)有部分PDF无法解析成功的问题。

ragflow版本为:v0.19.0 1.解析的时候报错:Internal server error while chunking: Coordinate lower is less than upper。 看报错怀疑是分片的问题,于是把文档的切片方法中的“建议文本块大小”数值(默认512)调小&…

IoTDB 集成 DBeaver,简易操作实现时序数据清晰管理

数据结构一目了然,跨库分析轻松实现,方便 IoTDB “内部构造”管理! 随着物联网场景对时序数据处理需求激增,时序数据库与数据库管理工具的集成尤为关键。作为数据资产的 “智能管家”,借助数据库管理工具的可视化操作界…

比较二维结构的尺寸分布

在行列可自由变换的平面上5点结构有34个 其中尺寸在3*3范围内的有7个 在4*4范围内的有14个 在5*5范围内的有13个 现在假设平面上有5个不可分辨的点在随机的运动,这5个点可能的位置关系就只有这34种。现在假设点与点之间的距离是稳定不变的的,且每个状态只出现一次。…

WSL里执行python深度学习的一些方法记录

安装anaconda3: 可以直接从 Download Now | Anaconda 中下载,然后拷贝到WSL环境的某个目录,执行 bash xxxxxxx.sh 即可安装。 启动jupyter notebook: 先conda activate 当前环境,然后pip install jupyter 此时&am…

防爆组合式智能全温振荡防爆培养箱,守护安全场所

品牌:宇晶峰 型号:BGZ-929PY-03ZC 使用温度:4~60C 温度分辨率/波动度/分布精度:0.1C/0.5C/1C(38C时) 回旋幅度/回旋频率范围(r/min):Φ26mm(选配Φ50mm)/30~300(选配5~400) 回旋频率…

如何选择适合的冲压件清洗机?冲压件清洗机的选购指南

冲压件清洗机是工业生产中不可或缺的设备之一,主要用于去除冲压过程中产生的油污、灰尘、碎屑等污染物,确保冲压件的清洁度和质量。适当选择合适的冲压件清洗机对于提高生产效率、降低成本以及保证产品质量都具有重要意义。以下是一份关于如何选择适合的…

2023-2024-2-《移动机器人设计与实践》上机测评

2022-2023-2-移动机器人设计与实践-期末A-CSDN博客 2022-2023-2-移动机器人设计与实践-期末B-CSDN博客 理论和实践分开测评,如下是实践部分 摘要: 《移动机器人设计与实践》期末上机测评要求学生完成配置题和实践题两部分。配置题(30分&am…

[HNCTF 2022 Week1]silly_zip

下载附件 解压发现需要密码 用010打开看看,发现是伪加密 改成00点击保存 解压后得到图片 感觉图片看着怪怪的,修改一下高度看看有没有其他线索 把47改成78 最后得到flag

QSS 的选择器

1. 样式表规则 样式表包含了一系列的样式规则,每个样式规则由选择器(selector)和声明(declaration)组成。     选择器:指定了受该规则影响的部件。     声明:指定了这个部件上要设置的属性。…

Python 训练营打卡 Day 30-模块和库的导入

模块和库的导入 1.1标准导入 import mathprint("方式1: 使用 import math") print(f"圆周率π的值: {math.pi}") print(f"2的平方根: {math.sqrt(2)}\n") 1.2从库中导入特定项 from math import pi, sqrtprint("方式2:使用 f…

ToolsSet之:渐变色生成工具

ToolsSet是微软商店中的一款包含数十种实用工具数百种细分功能的工具集合应用,应用基本功能介绍可以查看以下文章: Windows应用ToolsSet介绍https://blog.csdn.net/BinField/article/details/145898264 ToolsSet中Media菜单下的Gradient Color工具是一…