SVG在QT中加载黑色

时间:2016-02-29 16:00:07

标签: qt svg inkscape

我正在尝试在Qt中加载svg图像,但它一直显示为黑色。我打开示例项目'SVGViewer'并加载我的文件,因此代码不应该是一个问题,因为它适用于示例中包含的svg文件。

我在Inkscape v0.91中创建了我的svg,我尝试将其保存为Inkscape svg和纯文本格式,并且都显示为黑色。我所包含的只是一个简单的文本行,只是为了看看我是否可以加载它。

我需要设置其他一些Inkscape设置才能正常显示吗?

编辑:

查看我的svg文件

可能会有所帮助
Test SVG File

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   version="1.1"
   id="svg2"
   viewBox="0 0 744.09448819 1052.3622047"
   height="297mm"
   width="210mm">
  <defs
     id="defs4" />
  <metadata
     id="metadata7">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <g
     id="layer1">
    <flowRoot
       style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
       id="flowRoot3336"
       xml:space="preserve"><flowRegion
         id="flowRegion3338"><rect
           y="149.50507"
           x="62.857143"
           height="54.285713"
           width="162.85715"
           id="rect3340" /></flowRegion><flowPara
         id="flowPara3342">ABC123</flowPara></flowRoot>  </g>
</svg>

1 个答案:

答案 0 :(得分:0)

<flowRoot><flowRegion>等是SVG 1.2元素。我相信Inkscape是目前唯一支持SVG 1.2流动文本功能的程序。没有浏览器,我也不知道任何其他SVG渲染器都可以。

可以使用Inkscape的流动文本功能来设计SVG文件。但是,如果您希望它们与其他渲染器一起使用,则需要在保存文件之前将这些流动的文本块转换为普通文本元素。

有关如何操作,请参阅此Inkscape帮助页面底部的说明。

http://tavmjong.free.fr/INKSCAPE/MANUAL/html/Text-Flow.html