是否可以在Qt(5.3)TextEdit中显示SVG而不降低质量



我有具有以下属性的svg图像:viewBox="0 0 100 100"

这是我用来显示svg:的基本代码

Image{
  width: 50
  height: 50
  source: "test.svg"
}

这是不好的,因为图像在调整到宽度和高度值(50,50)之前是光栅化的。

此代码适用于所有分辨率:

Image{
  width: 50
  height: 50
  sourceSize.width: width
  sourceSize.height: height
  source: "test.svg"
}

因为图像是以所需的精确尺寸绘制的!

是否可以在使用<img>标记的TextEdit中获得相同的功能?

<img src="test.svg" width="50" height="50">

此代码不起作用,因为无法设置sourceSize。。。并且在调整大小和显示之前对图像进行光栅化。。。

也许还有其他方法可以做到这一点?

唯一的解决方案是将图像大小作为图像url的一部分提供,并在派生类中重新实现QTextDocument::loadResourceQTextEdit::loadResource。然后,您的图像元素将看起来像:

<img src="test.svg?50x50" width="50" height="50" />

您可以在loadResource的实现中解析url。

最新更新