QT / SVG:将形状渲染设置为" optimizeSpeed"使用QSvgGenerator

时间:2016-03-31 07:32:17

标签: qt svg

我想设置以下 SVG 标志:

shape-rendering = "optimizeSpeed"

如何使用QSvgGenerator实现这一目标?

1 个答案:

答案 0 :(得分:0)

我担心你不能用QSvgGenerator本身设置那个标志。

但您可以将 SVG 数据生成到缓冲区中,然后使用QDomDocument解析获取的数据并设置正确元素的标志。

QBuffer data;
QSvgGenerator generator;
generator.setOutputDevice(&data);

// ... generate SVG ...

QDomDocument doc;
doc.setContent(data.buffer());

QDomNodeList elements = doc.elementsByTagName("svg");

// There should be just one 'svg' element.
assert(elements.count() == 1);

// Set the flag.
elements.at(0).toElement().setAttribute("shape-rendering", "optimizeSpeed");

// Obtain SVG data as a string.
QString svg = doc.toString();