问题

想在软件界面用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)

结果顺利满足需求:

最新文章

  1. 使用redis避免客户端频繁提交数据
  2. listView获取item的Edit内容,listView中的edit内容在滚动时自动赋值了前面的内容
  3. 【读书笔记《Android游戏编程之从零开始》】19.游戏开发基础(游戏音乐与音效)
  4. POSIX线程
  5. AC、HC、AHC、ACT、LS的区别
  6. PHP学习之开发工具
  7. Using OpenCV with gcc and CMake
  8. freeswitch 拨号时添加自定义变量
  9. kickStart脚本
  10. CodeForces 370C. Mittens
  11. js模拟点击事件实现代码
  12. 基于Zxing的二维码的二维码扫描之横屏扫描
  13. checkbox选中并通过ajax传数组到后台接收
  14. 你不知道的JavaScript(上卷) (Kyle Simpson 著)
  15. Sharing Configuration in ASP.NET Core SPA Scenarios
  16. 一、git创建版本库及提交
  17. LeetCode-97.交错字符串
  18. 【转载并整理】javaweb单点登录
  19. Linux查看系统进程
  20. JS日期与字符串相互转换!!

热门文章

  1. Linux内核机制—smp_hotplug_thread
  2. paddle 错误(ValueError: all input arrays must have the same shape)
  3. 显示两行文字,超出显示省略号 css
  4. 如何完整卸载sketchup草图大师?
  5. 升级安装cuda
  6. ipmitool使用报错Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory
  7. NSQ(8)-有赞相关改进
  8. mac Big Sur 安装MAT
  9. ubuntu-wireshark打开出现错误的问题
  10. linux 下安装部署redis