How would you suggest to handle svg with QPixmap?
The construct QPixmap(":/myfile.svg");
then call of scaled()
does not work. The QPixmap gets pixelised.
Thx.
How would you suggest to handle svg with QPixmap?
The construct QPixmap(":/myfile.svg");
then call of scaled()
does not work. The QPixmap gets pixelised.
Thx.
You should use SVGRenderer to render it onto a QImage
. From there you can convert to a QPixmap
with QPixmap::convertFromImage
.
Now there is much simpler way without needing of SVG module
QIcon("filepath.svg").pixmap(QSize())
So simple and works fine. Atleast in my case it worked.
QIcon::addFile()
method also implicitly accepts SVG files now, permitting each icon mode and state to be associated with its own SVG file. –
Irreligion You should use SVGRenderer to render it onto a QImage
. From there you can convert to a QPixmap
with QPixmap::convertFromImage
.
Something like that:
QSvgRenderer renderer(svg_file_name);
QPixmap pm(width, height);
pm.fill(fill_color);
QPainter painter(&pm);
renderer.render(&painter, pm.rect());
On Qt5.12 i managed to display SVG icons without pixellisation in a QLabel:
QPixmap logoPixmap(":my-logo.svg"); // set your logo here
auto logoLabel = new QLabel(this);
logoLabel->setPixmap(logoPixmap);
logoLabel->setScaledContents(true);
logoLabel->setFixedSize(176, 61); // set your size here
© 2022 - 2024 — McMap. All rights reserved.