Qt QGraphicsSvgItem слишком сильно рендерится (0.5 единицы на каждой стороне) - PullRequest
0 голосов
/ 25 сентября 2011

Если я рисую элемент SVG в (0, 0) с 64x64, фактический отображаемый элемент SVG из (-0,5, -0,5) с 65x65. Я измерил это, нарисовав ограничивающий прямоугольник за элементом SVG. И элемент SVG торчит со всех сторон на половину единицы на QGraphicsScene.

Можно ли удалить этот эффект? Я установил ручку на NoPen. Я мог бы уменьшить его, но это было бы довольно неточным (поскольку ширина и высота требуют различного масштабирования, что вряд ли возможно). Как я могу исправить эту проблему?

enter image description here

Как видите, коричневые рамки (SVG) торчат над серой областью (ограничивающей рамкой). Ограничительная рамка подтверждается Inkscape.

Спасибо

1 Ответ

0 голосов
/ 28 сентября 2011

Нашли решение, используя преобразование:

QSvgRenderer *test = new QSvgRenderer(QLatin1String("test.svg"));

QGraphicsSvgItem *item = new QGraphicsSvgItem();
item->setSharedRenderer(test);
addItem(item);

// the following transformation is required if you want the SVG to be exactly on the spot and as big as it should be
item->setTransform(QTransform(test->viewBoxF().width() / (test->viewBoxF().width() + 1.0), 0.0, 0.0, test->viewBoxF().height() / (test->viewBoxF().height() + 1.0), 0.5, 0.5));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...