【PyQt6】Python使用QtCharts画图修改背景色的问题
问题
想在软件界面用PyQt6的QtChart新画一张饼图,自定义一个饼图类继承QChartView:
class PyPieChart(QChartView):
def __init__(
self,
series,
bg_visible=False,
bg_color="#44475a"
):
self.pie_series = QPieSeries()
self.set_series(series)
self.chart = QChart()
self.chart.addSeries(self.pie_series)
self.chart.legend().hide()
# 设置不显示背景
self.chart.setBackgroundVisible(bg_visible)
def set_series(self, series):
# 先清空
for item in self.pie_series.slices():
self.pie_series.remove(item)
# 再添加
for item in series:
if isinstance(item, list):
slice = QPieSlice(label=item[0], value=item[1])
else:
slice = QPieSlice(label=item, value=0)
self.pie_series.append(slice)
结果示例:

发现还是有白色的背景,然后讲代码改成:
# self.chart.setBackgroundVisible(bg_visible)
self.chart.setBackgroundPen(QPen(QColor(bg_color)))
发现chart的背景其实就那么大,隐藏背景也是有作用的,只是不是所希望的那样。

解决
由于这个PyPieChart继承了QChartView,而QChartView继承了QtWidgets.QGraphicsView,因此尝试了修改图上一层widget的背景:
# 设置不显示背景
self.chart.setBackgroundVisible(bg_visible)
self.setStyleSheet("background-color: %s" % bg_color)
结果顺利满足需求:

【PyQt6】Python使用QtCharts画图修改背景色的问题的更多相关文章
- Adobe Acrobat Pro 修改背景色
Adobe Acrobat Pro 如何修改背景色 CreateTime--2017年8月1日10:05:58Author:Marydon 参考:百度经验 在菜单栏选择“编辑”,下拉栏中选择最后一 ...
- Ubuntu 13.10 如何修改背景色--豆沙绿
如何修改Ubunut 13.10的窗口背景色,在网上找到了多资料,安装了dconf,Unity Tweak Tool,GNOME Color Chooser都无法修改背景色. 最后,还是直接去修改主题 ...
- python使用matplotlib画图
python使用matplotlib画图 matplotlib库是python最著名的画图库.它提供了一整套和matlab类似的命令API.十分适合交互式地进行制图. 先介绍了怎样使用matplotl ...
- 如何在Python中快速画图——使用Jupyter notebook的魔法函数(magic function)matplotlib inline
如何在Python中快速画图--使用Jupyter notebook的魔法函数(magic function)matplotlib inline 先展示一段相关的代码: #we test the ac ...
- 炼数成金数据分析课程---10、python中如何画图
炼数成金数据分析课程---10.python中如何画图 一.总结 一句话总结: 主要matplotlib库,pandas中也可以画一些基础图 大纲+实例快速学习法 1.matplotlib的最简单画图 ...
- 面试官问我:如何在 Python 中解析和修改 XML
摘要:我们经常需要解析用不同语言编写的数据.Python提供了许多库来解析或拆分用其他语言编写的数据.在此 Python XML 解析器教程中,您将学习如何使用 Python 解析 XML. 本文分享 ...
- python使用matplotlib画图,jieba分词、词云、selenuium、图片、音频、视频、文字识别、人脸识别
一.使用matplotlib画图 关注公众号"轻松学编程"了解更多. 使用matplotlib画柱形图 import matplotlib from matplotlib impo ...
- python批量进行文件修改操作
python批量修改文件扩展名 在网上下载了一些文件,因为某种原因,扩展名多了一个后缀'.xxx',手动修改的话因为文件太多,改起来费时费力,于是决定写个小脚本进行修改. 1.要点: import r ...
- 自己python程序的并行修改
遇到运算量大的程序,学习了下python并行运算的方法,在自己的程序上进行了修改,看看是否可以增加效率.原始代码是: import gt_apps as my_apps f=file('sample. ...
- python 全局变量引用与修改
一.引用 使用到的全局变量只是作为引用,不在函数中修改它的值的话,不需要加global关键字.如: #! /usr/bin/python a = 1 b = [2, 3] def func(): if ...
随机推荐
- K8S群集调度器
目录: 调度约束 Pod启动典型创建过程 调度过程 Predicate常见的算法 常见的优先级选项 指定调度节点 亲和性 键值运算关系 Pod亲和性和反亲和性 污点和容忍 污点 容忍 其他注意事项 c ...
- eval对函数this指向的影响
js eval() 对 this 指向的影响 const fn = () => { console.log('fn this is:', this) } function evalWrapper ...
- jmeter压测dubbo接口,参数为dto时如何写传参及有错误时的分析思路
一.传参 1. 无论dubbo接口传参是否为dto,所有参数都是在args的tab传进去的. 2. 如果dto中有自定义对象,paramType为自定义dto名,paramValue为其他参数组成的j ...
- go组合
package main import "fmt" func main() { aa := []string{"a", "b", " ...
- https原理(五)双向实践(https代理)
本文为了证明: 1 双向可以通过直接转发tcp的中间人代理网关 2 双向可以防止明文中间人 开始.(服务端need,使用myhost.com-pub-capub.jks,myhost.com-pub- ...
- js实现光标移入和移出元素事件
js实现光标移入和移出元素事件 效果实现: 代码: i标签添加事件 var onmouse = 'onmouseover = "overshow(this)" onmouseout ...
- unity shader ide
Shader Languages support for vs Code https://marketplace.visualstudio.com/items?itemName=slevesque.s ...
- Git 工作常用操作
撤回commit 上一次提交的代码 git reset --soft HEAD^ HEAD^的意思是上一个版本,也可以写成HEAD~1 如果你进行了2次commit,想都撤回,可以使用HEAD~2 g ...
- 'umi' 不是内部或外部命令,也不是可运行的程序 或批处理文件或umi: command not found
问题 'umi' 不是内部或外部命令,也不是可运行的程序 或批处理文件或umi: command not found 解决方法 参考链接:https://blog.csdn.net/weixin_40 ...
- 解决npm ERR! Cannot read properties of null (reading ‘pickAlgorithm‘)报错问题
解决方法:在终端中运行命令:npm cache clear --force 然后重新运行 npm i 命令,再次安装安装完成,没有出现报错npm run serve 运行项目,项目可以正常启动了. 安 ...