Я хотел бы использовать SVG в качестве масштабируемых фоновых изображений (например, прямоугольник со скругленными углами в качестве фона кнопки). Моя проблема в том, что размер кнопки зависит от содержимого кнопки - например, его текст. Теперь мне нужен метод для рисования моего SVG с разными размерами и аспектами, но с одинаковой шириной линии и радиусом.
В моем подходе я использовал SVG со 100% шириной и высотой
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg">
<rect id="rect0815" x="0" y="0" width="100%" height="100%" rx="15" ry="15"
fill="red" stroke="#000000" stroke-width="2"/>
</svg>
и отображается как фон:
void paintEvent(QPaintEvent * pEvent)
{
QPainter oPainter( this );
QSvgRenderer oRenderer( QString("../share/images/background.svg") );
oRenderer.render( &oPainter, pEvent->rect() );
}
Но это дало мне тот же искаженный результат, что и использование SVG с фиксированной шириной. Также я попробовал QSvgRenderer::setViewPort()
без какого-либо положительного эффекта.
С уважением,
Charly