Remember to add "QT += svg" to your .pro file..
#include <QSvgRenderer>
{
// allow button to paint it's borders..
// buffer is a member variable of type QPixmap
if (buffer.isNull() || buffer.size() != size() - margin)
{
// margin is a member variable of type QSize
renderer.render(&painter);
}
// draw a pixmap on the button
painter.drawPixmap(margin.height()/2, margin.width()/2, buffer);
}
#include <QSvgRenderer>
void SvgToolButton::paintEvent(QPaintEvent* e)
{
// allow button to paint it's borders..
QToolButton::paintEvent(e);
// buffer is a member variable of type QPixmap
if (buffer.isNull() || buffer.size() != size() - margin)
{
// margin is a member variable of type QSize
buffer = QPixmap(size() - margin);
QString fileName("button.svg");
QSvgRenderer renderer(fileName);
QPainter painter(&buffer);
renderer.render(&painter);
}
// draw a pixmap on the button
QPainter painter(this);
painter.drawPixmap(margin.height()/2, margin.width()/2, buffer);
}
To copy to clipboard, switch view to plain text mode
Edit: Btw, I did not test above code. Oh, and you might want to initialize the svg renderer somewhere else..
Bookmarks