我想製作一個svg,將在QGraphicsSvgItem
中讀取。我看了一些資料,似乎這就是我想要的東西:在qt中渲染的多行中心文本
<?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>
這將創建一個矩形 - 和多行文本的正中央:
這就是它看起來像在瀏覽器中。
在Qt儘管在QGraphicsSvgItem
加載時,它看起來像這樣:
我想,自己是不是由Qt的SVG渲染器支持...
更糟糕的是,設置字體尺寸使得我的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>
我怎樣才能讓Qt的獲得多行文本居中,作爲第一個圖像,從SVG(我應該怎麼PU t在SVG中)?
(QT 4.7到5.5 ...)
編輯:
這個工作(但仍無法弄清楚如何做到多線以外確定單個項目)
<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>
我發現令人費解的是,即使從教程中複製svgs,包含tspan
的任何svgs在瀏覽器中都能正確顯示,但不會在QGraphicsSvgItem
中顯示,或者它們可能只在完全不同的位置顯示。