source: trunk/src/gui/graphicsview/qgraphicsitemanimation.cpp@ 651

Last change on this file since 651 was 651, checked in by Dmitry A. Kuminov, 15 years ago

trunk: Merged in qt 4.6.2 sources.

File size: 17.5 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4** All rights reserved.
5** Contact: Nokia Corporation ([email protected])
6**
7** This file is part of the QtGui module of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:LGPL$
10** Commercial Usage
11** Licensees holding valid Qt Commercial licenses may use this file in
12** accordance with the Qt Commercial License Agreement provided with the
13** Software or, alternatively, in accordance with the terms contained in
14** a written agreement between you and Nokia.
15**
16** GNU Lesser General Public License Usage
17** Alternatively, this file may be used under the terms of the GNU Lesser
18** General Public License version 2.1 as published by the Free Software
19** Foundation and appearing in the file LICENSE.LGPL included in the
20** packaging of this file. Please review the following information to
21** ensure the GNU Lesser General Public License version 2.1 requirements
22** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23**
24** In addition, as a special exception, Nokia gives you certain additional
25** rights. These rights are described in the Nokia Qt LGPL Exception
26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27**
28** GNU General Public License Usage
29** Alternatively, this file may be used under the terms of the GNU
30** General Public License version 3.0 as published by the Free Software
31** Foundation and appearing in the file LICENSE.GPL included in the
32** packaging of this file. Please review the following information to
33** ensure the GNU General Public License version 3.0 requirements will be
34** met: http://www.gnu.org/copyleft/gpl.html.
35**
36** If you have questions regarding the use of this file, please contact
37** Nokia at [email protected].
38** $QT_END_LICENSE$
39**
40****************************************************************************/
41
42/*!
43 \class QGraphicsItemAnimation
44 \brief The QGraphicsItemAnimation class provides simple animation
45 support for QGraphicsItem.
46 \since 4.2
47 \ingroup graphicsview-api
48 \deprecated
49
50 The QGraphicsItemAnimation class animates a QGraphicsItem. You can
51 schedule changes to the item's transformation matrix at
52 specified steps. The QGraphicsItemAnimation class has a
53 current step value. When this value changes the transformations
54 scheduled at that step are performed. The current step of the
55 animation is set with the \c setStep() function.
56
57 QGraphicsItemAnimation will do a simple linear interpolation
58 between the nearest adjacent scheduled changes to calculate the
59 matrix. For instance, if you set the position of an item at values
60 0.0 and 1.0, the animation will show the item moving in a straight
61 line between these positions. The same is true for scaling and
62 rotation.
63
64 It is usual to use the class with a QTimeLine. The timeline's
65 \l{QTimeLine::}{valueChanged()} signal is then connected to the
66 \c setStep() slot. For example, you can set up an item for rotation
67 by calling \c setRotationAt() for different step values.
68 The animations timeline is set with the setTimeLine() function.
69
70 An example animation with a timeline follows:
71
72 \snippet doc/src/snippets/timeline/main.cpp 0
73
74 Note that steps lie between 0.0 and 1.0. It may be necessary to use
75 \l{QTimeLine::}{setUpdateInterval()}. The default update interval
76 is 40 ms. A scheduled transformation cannot be removed when set,
77 so scheduling several transformations of the same kind (e.g.,
78 rotations) at the same step is not recommended.