test SVG

<svg width="580" height="400" xmlns="http://www.w3.org/2000/svg">
 <!-- Created with Method Draw - http://github.com/duopixel/Method-Draw/ -->
 <defs>
  <filter height="200%" width="200%" y="-50%" x="-50%" id="svg_3_blur">
   <feGaussianBlur stdDeviation="2.1" in="SourceGraphic"/>
  </filter>
 </defs>
 <g>
  <title>background</title>
  <rect fill="#eae425" id="canvas_background" height="402" width="582" y="-1" x="-1"/>
  <g display="none" overflow="visible" y="0" x="0" height="100%" width="100%" id="canvasGrid">
   <rect fill="url(#gridpattern)" stroke-width="0" y="0" x="0" height="100%" width="100%"/>
  </g>
 </g>
 <g>
  <title>Layer 1</title>
  <line stroke-linecap="undefined" stroke-linejoin="undefined" id="svg_2" y2="63.4375" x2="272.5" y1="63.4375" x1="36.5" stroke-width="1.5" stroke="#000" fill="none"/>
  <rect rx="15" filter="url(#svg_3_blur)" opacity="0.63" transform="rotate(-15 270,73)" stroke-dasharray="5,2,2,2,2,2" id="svg_3" height="40" width="300" y="53" x="120" stroke-width="10" stroke="#000" fill="#fff"/>
  <rect id="svg_4" height="0" width="2" y="112.4375" x="407.5" stroke-width="1.5" stroke="#000" fill="#fff"/>
  <line stroke-linecap="undefined" stroke-linejoin="undefined" id="svg_6" y2="90.4375" x2="183.5" y1="63.4375" x1="183.5" stroke-width="1.5" stroke="#000" fill="none"/>
 </g>
</svg>

 

Qt提供了QSvgRenderer类,可以用来渲染SVG文件,并且可以获取SVG文件中的属性。 以下是一个示例代码,演示如何修改SVG文件的属性: ```cpp #include <QApplication> #include <QSvgRenderer> #include <QSvgGenerator> #include <QPainter> int main(int argc, char *argv[]) { QApplication a(argc, argv); // 加载SVG文件 QSvgRenderer renderer(QStringLiteral(":/test.svg")); if (!renderer.isValid()) { qWarning("Failed to load SVG file"); return 1; } // 获取SVG文件中的属性 QSize size = renderer.defaultSize(); // 修改SVG文件中的属性 size.setWidth(size.width() * 2); size.setHeight(size.height() * 2); // 生成新的SVG文件 QSvgGenerator generator; generator.setFileName(QStringLiteral("new_test.svg")); generator.setSize(size); generator.setViewBox(QRect(QPoint(0, 0), size)); generator.setTitle(QStringLiteral("New Test SVG")); generator.setDescription(QStringLiteral("This is a new test SVG file")); // 渲染SVG文件 QPainter painter; painter.begin(&generator); renderer.render(&painter); painter.end(); return 0; } ``` 在上面的代码中,首先使用QSvgRenderer类加载SVG文件,然后获取SVG文件中的属性。接着,修改SVG文件中的属性,例如将宽度和高度都乘以2。然后,创建一个新的QSvgGenerator对象,设置SVG文件的属性,例如文件名、大小、视图框、标题和描述。最后,使用QPainter类将SVG文件渲染到新的SVG文件中。 请注意,如果你要修改SVG文件中的属性,例如颜色、字体等等,需要在渲染之前修改。因为QSvgRenderer类不会修改SVG文件本身,而是在渲染时根据SVG文件中的属性进行渲染。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值