最近在研究QSvgRenderer解析svg文件。定义的的SVG文件如下:
<?xml version='1.0' encoding='UTF-8'?>
<svg width="800" xmlns="http://www.w3.org/2000/svg" height="600" 
    xmlns:xlink="http://www.w3.org/1999/xlink" >
 <defs>
    <g id="shape2"  >
        <circle cx="0" cy="0" r="25" style="fill:#bf55ec;"/>
    </g>
    <symbol id="shape1" viewBox="0 0 800 600">
        <rect x="50" y="50" width="25" height="50" style="fill:#02ffbb;"/>
    </symbol>
        <rect x="50" y="50" width="25" height="50" style="fill:#02ffbb;"/>
    </symbol>
 </defs>
 <g id="s1">
    <use xlink:href="#shape2" x="100" y="25" />
 </g>   
  <g id="s3">
    <use xlink:href="#shape1" x="150" y="25" />
  </g> 
</svg>
解析代码:
 QSvgRenderer *renderer = new QSvgRenderer(fileName);
    QGraphicsSvgItem *black = new QGraphicsSvgItem();
    black->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsFocusable);
        black->setSharedRenderer(renderer);
        black->setElementId(QLatin1String("s1"));
        black->setPos(100,25);
    m_sence->addItem(black);
    QGraphicsSvgItem* test2 = new QGraphicsSvgItem();
    test2->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsFocusable);
    test2->setSharedRenderer(renderer);
    test2->setElementId(QLatin1String("s3"));
    test2->setPos(150,25);
    m_sence->addItem(test2);
问题:
s1是能正常解析出来的,但是s3确解析 不出来。控制台提示:link shape1 hasn't been detected!
在defs中的<g>标签定义的在<use>的时候可以引用到,<symbol>标签定义的,确引用不到!!
各位,有没有高手有解???