|
|
|
/****************************************************************************
|
|
|
|
**
|
|
|
|
** Documentation for the canvas module
|
|
|
|
**
|
|
|
|
** Copyright (C) 2000-2008 Trolltech ASA. All rights reserved.
|
|
|
|
**
|
|
|
|
** This file is part of the TQt GUI Toolkit.
|
|
|
|
**
|
|
|
|
** This file may be used under the terms of the GNU General
|
|
|
|
** Public License versions 2.0 or 3.0 as published by the Free
|
|
|
|
** Software Foundation and appearing in the files LICENSE.GPL2
|
|
|
|
** and LICENSE.GPL3 included in the packaging of this file.
|
|
|
|
** Alternatively you may (at your option) use any later version
|
|
|
|
** of the GNU General Public License if such license has been
|
|
|
|
** publicly approved by Trolltech ASA (or its successors, if any)
|
|
|
|
** and the KDE Free TQt Foundation.
|
|
|
|
**
|
|
|
|
** Please review the following information to ensure GNU General
|
|
|
|
** Public Licensing requirements will be met:
|
|
|
|
** http://trolltech.com/products/qt/licenses/licensing/opensource/.
|
|
|
|
** If you are unsure which license is appropriate for your use, please
|
|
|
|
** review the following information:
|
|
|
|
** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
|
|
|
|
** or contact the sales department at sales@trolltech.com.
|
|
|
|
**
|
|
|
|
** This file may be used under the terms of the Q Public License as
|
|
|
|
** defined by Trolltech ASA and appearing in the file LICENSE.QPL
|
|
|
|
** included in the packaging of this file. Licensees holding valid Qt
|
|
|
|
** Commercial licenses may use this file in accordance with the Qt
|
|
|
|
** Commercial License Agreement provided with the Software.
|
|
|
|
**
|
|
|
|
** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
|
|
|
|
** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
|
|
|
|
** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
|
|
|
|
** herein.
|
|
|
|
**
|
|
|
|
**********************************************************************/
|
|
|
|
|
|
|
|
/*!
|
|
|
|
\page canvas.html
|
|
|
|
|
|
|
|
\title Canvas Module
|
|
|
|
|
|
|
|
\if defined(commercial)
|
|
|
|
This module is part of the \link commercialeditions.html TQt Enterprise Edition
|
|
|
|
\endlink.
|
|
|
|
\endif
|
|
|
|
|
|
|
|
The canvas module provides a highly optimized 2D graphic area called
|
|
|
|
\l QCanvas. The canvas can contain an arbitrary number of \link
|
|
|
|
QCanvasItem QCanvasItems \endlink. Canvas items can have an arbitrary
|
|
|
|
shape, size and content, can be freely moved around in the canvas,
|
|
|
|
and can be checked for collisions. Canvas items can be set to move
|
|
|
|
across the canvas automatically and animated canvas items are
|
|
|
|
supported with QCanvasSprite. (If you require 3D graphics see Qt's
|
|
|
|
\link opengl.html OpenGL module \endlink.)
|
|
|
|
|
|
|
|
The canvas module uses a document/view model. The \l QCanvasView class
|
|
|
|
is used to show a particular view of a canvas. Multiple views can operate
|
|
|
|
on the same canvas at the same time. Every view can use an arbitrary
|
|
|
|
transformation matrix on the canvas which makes it easy to implement
|
|
|
|
features such as zooming.
|
|
|
|
|
|
|
|
<center><a href="ntqcanvas.html">
|
|
|
|
<img src="qcanvas.png" alt="Screenshot of a canvas"></a></center>
|
|
|
|
|
|
|
|
Qt provides a number of predefined \l QCanvas items as listed below.
|
|
|
|
|
|
|
|
\list
|
|
|
|
\i QCanvasItem -- An abstract base class for all canvas items.
|
|
|
|
\i QCanvasEllipse -- An ellipse or "pie segment".
|
|
|
|
\i QCanvasLine -- A line segment.
|
|
|
|
\i QCanvasPolygon -- A polygon.
|
|
|
|
\i QCanvasPolygonalItem -- A base class for items that have a
|
|
|
|
non-rectangular shape. Most canvas items derive from this class.
|
|
|
|
\i QCanvasRectangle -- A rectangle. The rectangle cannot be tilted or
|
|
|
|
rotated. Rotated rectangles can be drawn using QCanvasPolygon.
|
|
|
|
\i QCanvasSpline -- A multi-bezier spline.
|
|
|
|
\i QCanvasSprite -- An animated pixmap.
|
|
|
|
\i QCanvasText -- A text string.
|
|
|
|
\endlist
|
|
|
|
|
|
|
|
The two classes \l QCanvasPixmap and \l QCanvasPixmapArray are used
|
|
|
|
by \l QCanvasSprite to show animated and moving pixmaps on the
|
|
|
|
canvas.
|
|
|
|
|
|
|
|
More specialized items can be created by inheriting from one of the
|
|
|
|
canvas item classes. It is easiest to inherit from one of
|
|
|
|
QCanvasItem's derived classes (usually \l QCanvasPolygonalItem) rather
|
|
|
|
than inherit QCanvasItem directly.
|
|
|
|
|
|
|
|
See \c examples/canvas for an example that shows off some of QCanvas's
|
|
|
|
capabilities.
|
|
|
|
|
|
|
|
*/
|