当前位置:   article > 正文

用PyQt5设计饼状统计图(QPainterpath画扇形饼圆,画圆角矩形,鼠标mouseMoveEvent)_pyqt5扇形图

pyqt5扇形图

概要

该控件是参考了feiyangqingyun的广告占比图(Qt作品),更改了配色,重用PyQt5编写而成。原版在此:
https://blog.csdn.net/feiyangqingyun/article/details/98472081

成品图

先上成品图

当鼠标停在饼圆对应区域,该区域面积会扩大弹出,同时,对应下方的图例字体会变成黄色。
该项目的重难点主要有两个:1. 绘制饼圆; 2. 鼠标进入事件。
消费统计饼图

用QPainterpath绘制扇形饼圆

paintEvent重绘

当用户对窗口进行拉伸,移动,或者鼠标悬停在某个扇形饼圆区域,则触发paintEvent 对窗口元素进行重绘,其核心代码如下:

def paintEvent(self, event):
    # 绘制准备工作, 启用反锯齿
    painter = QtGui.QPainter(self)
    painter.setRenderHints(QtGui.QPainter.Antialiasing | QtGui.QPainter.TextAntialiasing)
    
    # 平移坐标中心,等比例缩放
    width = self.width()
    height = self.height()
    side = min(width, height)
    painter.translate(width / 2, height / 2) # 坐标中心移至窗口中心位置
    painter.scale(side / 200.0, side / 200.0) # 坐标刻度缩放为原来的(side/200)倍 

    # 画圆
    self.drawOuterCircle(painter) # 绘制外侧圆
    self.drawMidCircle
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/132422
推荐阅读
相关标签
  

闽ICP备14008679号