79331507

Date: 2025-01-05 20:39:01
Score: 1
Natty:
Report link
QIcon HmsUiHelper::createIconFromSvg(const QString& svgFilePath, const QColor& color, int width, int height)
{
    QSvgRenderer svgRenderer{ svgFilePath };
    
    QPixmap pixmap{ width, height };
    pixmap.fill(Qt::transparent);
    
    QPainter painter{ &pixmap };
    painter.setRenderHint(QPainter::Antialiasing);
    
    svgRenderer.render(&painter);
    
    QGraphicsScene scene;
    QGraphicsPixmapItem item{ pixmap };
    
    auto* colorizeEffect = new QGraphicsColorizeEffect{};
    colorizeEffect->setColor(color);
    item.setGraphicsEffect(colorizeEffect);
    scene.addItem(&item);
    
    QPixmap resultPixmap{ width, height };
    resultPixmap.fill(Qt::transparent);
    
    QPainter resultPainter{ &resultPixmap };
    scene.render(&resultPainter);
    
    return QIcon{ resultPixmap };
}

The result demo-code using QGraphicsColorizeEffect. Thank you musicamante!

Reasons:
  • Blacklisted phrase (0.5): Thank you
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: Max01