Как изменить цвет SVG и сделать значок? (Qt, С++)C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как изменить цвет SVG и сделать значок? (Qt, С++)

Сообщение Anonymous »

Код: Выделить всё

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);

painter.setBrush(QBrush{ color });
painter.setPen(Qt::NoPen);

painter.scale(static_cast(width) / svgRenderer.defaultSize().width(),
static_cast(height) / svgRenderer.defaultSize().height());

svgRenderer.render(&painter);

return QIcon{ pixmap };
}
У меня есть эта функция, но когда я пытаюсь установить для значка результата действие QLineEdit, значок svg не меняет цвет, но меняет размер.
В чем проблема и как ее решить?
Я пробовал много вариантов с RenderHints и т. д. Я не хочу менять свойства svg (что-то вроде решения, которое я нашел). Я хочу изменить цвет SVG с помощью QSvgRenderer.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -icon-qt-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»