code: def paintEvent(self, event):
      self.updatePosition()
      painter = QPainter(self)
      painter.fillRect(self.rect(), Qt.transparent)
      painter.setRenderHint(QPainter.Antialiasing, True)
      if self.mCurrentCounter > self.mNumberOfLines:
          self.mCurrentCounter = 0
      painter.setPen(Qt.NoPen)
  
      for i in range(self.mNumberOfLines):
          painter.save()
          painter.translate(
              self.mInnerRadius + self.mLineLength,
              self.mInnerRadius + self.mLineLength,
          )
          rotateAngle = 360.0 * i / self.mNumberOfLines
          painter.rotate(rotateAngle)
          painter.translate(self.mInnerRadius, 0)
          distance = self.lineCountDistanceFromPrimary(
              i, self.mCurrentCounter, self.mNumberOfLines
          )
          color = self.currentLineColor(
              distance,
              self.mNumberOfLines,
              self.mTrailFadePercentage,
              self.mMinimumTrailOpacity,
              self.mColor,
          )
          painter.setBrush(color)
          painter.drawRoundedRect(
              QRect(
                  0,
                  -self.mLineWidth // 2,
                  self.mLineLength,
                  self.mLineLength,
              ),
              self.mRoundness,
              Qt.RelativeSize,
          )
          painter.restore()
  
imports: from math import ceil
  from PyQt5.QtCore import *
  from PyQt5.QtGui import *
  from PyQt5.QtWidgets import *
label_desc: Use image node_id 9 for calling the Spinner obj's underlying member method code with example usage: obj.paintEvent(event) without return types