1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
/****************************************************************************
**
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
** This file contains pre-release code and may not be distributed.
** You may use this file in accordance with the terms and conditions
** contained in the either Technology Preview License Agreement or the
** Beta Release License Agreement.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain
** additional rights. These rights are described in the Nokia Qt LGPL
** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
** package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** If you are unsure which license is appropriate for your use, please
** contact the sales department at http://www.qtsoftware.com/contact.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\module QtSvg
\title QtSvg Module
\since 4.1
\contentspage Qt's Modules
\previouspage QtSql
\nextpage QtWebKit
\ingroup modules
\brief The QtSvg module provides classes for displaying the contents of SVG
files.
Scalable Vector Graphics (SVG) is a language for describing two-dimensional
graphics and graphical applications in XML. SVG 1.1 is a W3C Recommendation
and forms the core of the current SVG developments in Qt. SVG 1.2 is the
specification currently being developed by the \l{SVG Working Group}, and it
is \l{http://www.w3.org/TR/SVG12/}{available in draft form}.
The \l{Mobile SVG Profiles} (SVG Basic and SVG Tiny) are aimed at
resource-limited devices and are part of the 3GPP platform for third generation
mobile phones. You can read more about SVG at \l{About SVG}.
\tableofcontents
\section1 SVG Support
Qt supports the \l{SVG 1.2 Tiny Static Features}{static features} of
\l{SVG 1.2 Tiny}. ECMA scripts and DOM manipulation are currently not
supported.
\section1 Configuring the Build Process
Applications that use Qt's SVG classes need to
be configured to be built against the QtSvg module.
To include the definitions of the module's classes, use the
following directive:
\snippet doc/src/snippets/code/doc_src_qtsvg.qdoc 0
To link against the module, add this line to your \l qmake \c
.pro file:
\snippet doc/src/snippets/code/doc_src_qtsvg.qdoc 1
The QtSvg module is part of the \l{Qt Full Framework Edition} and the
\l{Open Source Versions of Qt}.
\section1 Rendering SVG files
The easiest way to render SVG files is to construct a QSvgWidget and
load an SVG file using one of the QSvgWidget::load() functions.
QSvgRenderer is the class responsible for rendering SVG files for
QSvgWidget, and it can be used directly to provide SVG support for
custom widgets.
To load an SVG file, construct a QSvgRenderer with a file name or the
contents of a file, or call QSvgRenderer::load() on an existing
renderer. If the SVG file has been loaded successfully the
QSvgRenderer::isValid() will return true.
Once you have loaded the SVG file successfully, you can render it
with the QSvgRenderer::render() function. Note that this scheme allows
you to render SVG files on all paint devices supported by Qt, including
QWidget, QGLWidget, and QImage. See the \l{SVG Viewer Example}{SVG Viewer}
example for more details.
\section1 Additional Information
Some code for arc handling in this module is derived from code with
the following license:
\legalese
Copyright 2002 USC/Information Sciences Institute
Permission to use, copy, modify, distribute, and sell this software
and its documentation for any purpose is hereby granted without
fee, provided that the above copyright notice appear in all copies
and that both that copyright notice and this permission notice
appear in supporting documentation, and that the name of
Information Sciences Institute not be used in advertising or
publicity pertaining to distribution of the software without
specific, written prior permission. Information Sciences Institute
makes no representations about the suitability of this software for
any purpose. It is provided "as is" without express or implied
warranty.
INFORMATION SCIENCES INSTITUTE DISCLAIMS ALL WARRANTIES WITH REGARD
TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL INFORMATION SCIENCES
INSTITUTE BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
\endlegalese
*/
|