0

如果我在 (0, 0) 处以 64x64 绘制 SVG 项目,则实际显示的 SVG 项目来自 (-0.5, -0.5) 和 65x65。我通过在 SVG 项目后面绘制边界框来测量这一点。并且 SVG 项目在 QGraphicsScene 上从四面八方伸出半个单位。

我可以去掉这个效果吗?我已将笔设置为 NoPen。我可以按比例缩小,但这会很不精确(因为宽度和高度需要不同的比例,这几乎是不可能的)。我该如何解决这个问题?

在此处输入图像描述

如您所见,棕色框 (SVG) 突出在灰色区域(边界框)上。边界框由 Inkscape 确认。

谢谢

4

1 回答 1

0

使用变换找到解决方案:

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));
于 2011-09-28T11:39:09.027 回答