#include "statusdot.h" void StatusDot::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { QStyleOptionViewItem opt = option; initStyleOption(&opt, index); int dotSize = qMin(opt.rect.width(), opt.rect.height()) * 0.5; painter->save(); painter->setRenderHint(QPainter::Antialiasing, true); QRect dotRect(opt.rect.center().x() - dotSize / 2, opt.rect.center().y() - dotSize / 2, dotSize, dotSize); QColor color = QColor(index.data(Qt::BackgroundRole).value()); painter->setBrush(color); painter->setPen(Qt::NoPen); painter->drawEllipse(dotRect); painter->restore(); }