2016-05-31 14 views
4

で読み込まれるsvgを作成しようとしています。私はいくつかのドキュメントを読んで、そして私が欲しいものであるようだ。svg内に複数行のテキストが表示されます。

<?xml version="1.0" encoding="utf-8"?> 
<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) --> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 
    width="100px" height="100px" viewBox="0 0 100 100" enable-background="new 0 0 100 100" 
    xml:space="preserve"> 
    <rect fill="#437624" stroke="none" fill-opacity="1" x="0" y="0" width="100" height="100" /> 

    <text y="50" transform="translate(50)"> 
     <tspan x="0" text-anchor="middle">No</tspan> 
     <tspan x="0" text-anchor="middle" dy="15">Arrow</tspan> 
    </text> 
</svg> 

これは、四角形を作成 - と複数行のテキストは、内部の中心:
enter image description hereこれは、それがブラウザでどのように見えるかです。
enter image description here

私はフォントを設定し、

はさらに悪いことに...何かがQtのSVGレンダラでサポートされていないことを想像:Qtのけれども、QGraphicsSvgItemにロードされたとき、それはこのようになりますで

サイズは私のQtのテキストが完全に消えます:

<text y="40" font-size="24" transform="translate(50)"> 
     <tspan x="0" text-anchor="middle">No</tspan> 
     <tspan x="0" text-anchor="middle" dy="30">Arrow</tspan> 
    </text> 

にはどうすればSVG(何べきI PUから、Qtは最初の画像のように複数行のテキストを中心とし、入手することができますSVGのt)?

(5.5へのQt 4.7 ...)

編集:

これは働いていた(それでも個々の項目を決定するよりも、複数行その他を行う方法を見つけ出すことはできません)

<text x="0" y="40" font-size="24" transform="translate(50)" text-anchor="middle">No</text> 
<text x="0" y="70" font-size="24" transform="translate(50)" text-anchor="middle">Arrow</text> 

チュートリアルからsvgをコピーしても、tspanを含むすべてのsvgはブラウザでは正しく表示されますが、QGraphicsSvgItemには表示されないか、まったく異なる場所に表示されます。

答えて

2

質問に対する回答は、QGraphicsSvgと標準のSVG Tiny 1.2の両方のドキュメントにあると思います。

あなたのライブラリのみサポートSVGタイニーはなく、完全なSVGの仕様と小型SVGをサポート「は、tspan」をしながら、それはまた、この状態:など

「位置の属性 『X』、 『Y』、および ' SVG Tiny 1.2の 'tspan'では利用できません。

参照SVGタイニー1.2:https://www.w3.org/TR/SVGTiny12/text.html#TSpanElement

Does QT support svg?

も参照してください。
関連する問題