Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: phisix от Июль 10, 2013, 13:56



Название: QSvgRenderer
Отправлено: phisix от Июль 10, 2013, 13:56
Есть ли возможность с помощью стандартных средств Qt "добраться" до примитивных элементов (линия, эллипс), из которых построен объект (векторная картинка) в *.SVG файле?
Использую QSvgRenderer, позволяет работать с элементами "верхнего уровня" через elementId...





Название: Re: QSvgRenderer
Отправлено: Hrundel от Июль 14, 2013, 10:51
Для этого надо "разбирать" файл соответственно спецификации формата.
Можно подключить библиотеку ImageMagic она читает Svq но не знаю насколько она предоставляет доступ к элементам. скорее всего она его просто растеризует.

В документации стоит:

The QSvgRenderer class is used to draw the contents of SVG files onto paint devices.
Using QSvgRenderer, Scalable Vector Graphics (SVG) can be rendered onto any QPaintDevice subclass, including QWidget, QImage, and QGLWidget.

Значит должно получиться.


Название: Re: QSvgRenderer
Отправлено: kamre от Июль 14, 2013, 12:49
Использую QSvgRenderer...
Оно же вроде deprecated (http://blog.qt.digia.com/blog/2011/05/12/qt-modules-maturity-level-the-list/):
Цитировать
QtSvg
 Overall module state: Deprecated
 New maintainer required
 Reasoning: SVG Full (as opposed to SVG Tiny) functionality available in QtWebKit, which should be used instead; we welcome research for a replacement for the SVG-generating code.