• 6437阅读
  • 4回复

关于QSvgWidget的问题,谁能帮忙解决? [复制链接]

上一主题 下一主题
离线xuyunxuyun
 
只看楼主 倒序阅读 楼主  发表于: 2008-12-30
— 本帖被 XChinux 执行加亮操作(2009-01-06) —
最近使用SVG画了一张地图,想放在QSvgWidget中显示,但是有很多元素却显示不出来,自己找了很长时间原因,最终确定问题出在polyline元素的stroke属性上,SVG文件如下:
<svg width="240" height="320" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g id="map" transform="translate(120,160),scale(0.2)">
        <defs>
            <g id="road">
                <polyline id="l1" points="178,391 191,391 203,394"/>
            </g>
        </defs>
        <use xlink:href="#road" style="fill:none;stroke:black;stroke-width:12"/>
        <use xlink:href="#road" style="fill:none;stroke:yellow;stroke-width:11"/>
    </g>
</svg>
其他的SVG浏览器中都可正常显示,但是在QSvgWidget控件中无论怎么修改stroke属性,都无法显示,难道是qt对SVG支持的问题?还请各位多多帮忙!
离线lazybone
只看该作者 1楼 发表于: 2008-12-30
其他的SVG浏览器中都可正常显示?我在安了插件的IE里就只有一个点
你的绘图路径的坐标可能有问题
我随便改了一下 points="20,20  222,222",公路就出来了
离线xuyunxuyun
只看该作者 2楼 发表于: 2008-12-30
这是我画的一条路,point后面的坐标都省去了,只留下两三个试验,坐标不是主要问题,我在IE中也能正常显示,可是一到QT控件中就显示不出来了。
离线lazybone
只看该作者 3楼 发表于: 2008-12-31
会不会是QSvgWidget控件没有正确添加,我用你原来代码显示的是个点,好像svg代码没问题
贴上程序大家瞅瞅吧
[ 此贴被lazybone在2008-12-31 08:31重新编辑 ]
离线xuyunxuyun
只看该作者 4楼 发表于: 2008-12-31
不会吧,我直接使用QSvgWidget作窗口,程序:
#include<QApplication>
#include<QSvgWidget>
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
QSvgWidget svg("1.svg");//SVG文件同上
svg.show();
return app.exec();
}
这样就不行,另外,用QT中的例子打开我自己画的SVG文件也不能正常显示。
快速回复
限100 字节
 
上一个 下一个