【PyQt6】Python使用QtCharts画图修改背景色的问题
2024-10-22 05:14:37
问题
想在软件界面用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)
结果顺利满足需求:
最新文章
- 使用redis避免客户端频繁提交数据
- listView获取item的Edit内容,listView中的edit内容在滚动时自动赋值了前面的内容
- 【读书笔记《Android游戏编程之从零开始》】19.游戏开发基础(游戏音乐与音效)
- POSIX线程
- AC、HC、AHC、ACT、LS的区别
- PHP学习之开发工具
- Using OpenCV with gcc and CMake
- freeswitch 拨号时添加自定义变量
- kickStart脚本
- CodeForces 370C. Mittens
- js模拟点击事件实现代码
- 基于Zxing的二维码的二维码扫描之横屏扫描
- checkbox选中并通过ajax传数组到后台接收
- 你不知道的JavaScript(上卷) (Kyle Simpson 著)
- Sharing Configuration in ASP.NET Core SPA Scenarios
- 一、git创建版本库及提交
- LeetCode-97.交错字符串
- 【转载并整理】javaweb单点登录
- Linux查看系统进程
- JS日期与字符串相互转换!!
热门文章
- Linux内核机制—smp_hotplug_thread
- paddle 错误(ValueError: all input arrays must have the same shape)
- 显示两行文字,超出显示省略号 css
- 如何完整卸载sketchup草图大师?
- 升级安装cuda
- ipmitool使用报错Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory
- NSQ(8)-有赞相关改进
- mac Big Sur 安装MAT
- ubuntu-wireshark打开出现错误的问题
- linux 下安装部署redis