def paint(self, painter, option, index):
if option.state & QStyle.State_Selected:
painter.fillRect(option.rect, option.palette.highlight())
size = min(option.rect.width(), option.rect.height())
brightness = index.model().data(index, Qt.DisplayRole)
radius = (size/2.0) - (brightness/255.0 * size/2.0)
if radius == 0.0:
return
painter.save()
painter.setRenderHint(QPainter.Antialiasing)
painter.setPen(Qt.NoPen)
if option.state & QStyle.State_Selected:
painter.setBrush(option.palette.highlightedText())
else:
painter.setBrush(QBrush(Qt.black))
painter.drawEllipse(QRectF(
option.rect.x() + option.rect.width()/2 - radius,
option.rect.y() + option.rect.height()/2 - radius,
2*radius, 2*radius))
painter.restore()
评论列表
文章目录