QT/SVG:将形状渲染设置为;“优化速度”;带QSvgGenerator

QT/SVG:将形状渲染设置为;“优化速度”;带QSvgGenerator,qt,svg,Qt,Svg,我想设置以下SVG标志: 如何使用QSvgGenerator实现这一点?我担心您无法使用QSvgGenerator本身设置该标志 但是您可以将SVG数据生成到缓冲区中,然后使用QDomDocument解析获得的数据,并为适当的元素设置标志 QBuffer data; QSvgGenerator generator; generator.setOutputDevice(&data); // ... generate SVG ... QDomDocument doc; doc.setCo

我想设置以下SVG标志:


如何使用QSvgGenerator实现这一点?

我担心您无法使用
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();

第3行不应该是:generator.setOutputDevice(&data);?谢谢你的回答。
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();