forked from qt-creator/qt-creator
States view layout was also changed, so update screenshots. Change-Id: I0e4535add8720375e40fcf0e65b20061d94c5150 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
130 lines
5.8 KiB
Plaintext
130 lines
5.8 KiB
Plaintext
/****************************************************************************
|
|
**
|
|
** Copyright (C) 2020 The Qt Company Ltd.
|
|
** Contact: https://www.qt.io/licensing/
|
|
**
|
|
** This file is part of the Qt Design Studio documentation.
|
|
**
|
|
** Commercial License Usage
|
|
** Licensees holding valid commercial Qt licenses may use this file in
|
|
** accordance with the commercial license agreement provided with the
|
|
** Software or, alternatively, in accordance with the terms contained in
|
|
** a written agreement between you and The Qt Company. For licensing terms
|
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
** information use the contact form at https://www.qt.io/contact-us.
|
|
**
|
|
** GNU Free Documentation License Usage
|
|
** Alternatively, this file may be used under the terms of the GNU Free
|
|
** Documentation License version 1.3 as published by the Free Software
|
|
** Foundation and appearing in the file included in the packaging of
|
|
** this file. Please review the following information to ensure
|
|
** the GNU Free Documentation License version 1.3 requirements
|
|
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
|
|
**
|
|
****************************************************************************/
|
|
|
|
/*!
|
|
\example EBikeDesign
|
|
\ingroup studioexamples
|
|
|
|
\title E-Bike Design
|
|
\brief Illustrates how to use the timeline and states to animate transitions
|
|
in an application.
|
|
|
|
\image ebikedesign.png "Standard screen"
|
|
|
|
\e {E-Bike Design} is a control center application for electric bikes.
|
|
The application contains a Standard screen that displays a speedometer,
|
|
a Trip screen that displays statistics about the current trip, and a
|
|
Navigator screen that displays a map.
|
|
|
|
The Trip and Navigator screens display a small animated speedometer that
|
|
the users can select to move back to the Standard screen.
|
|
|
|
\image ebikedesign-trip.png "Trip screen"
|
|
|
|
In the \e {Screen01.ui.qml} file, we place the screens in a row in the
|
|
following order from left to right: Trip, Standard, Navigator. We will
|
|
use states to show the appropriate screen in the viewport, and the timeline
|
|
to animate the transitions between and on the screens.
|
|
|
|
\section1 Using Timelines to Animate Transitions
|
|
|
|
We use the \uicontrol Timeline view to animate the transitions between
|
|
the screens in \e {Screen01.ui.qml}.
|
|
|
|
Our viewport contains 1000 frames, so we select the
|
|
\inlineimage plus.png "Plus button"
|
|
button to add a 5000-frame timeline to the root element.
|
|
We use the default values for all other fields.
|
|
|
|
To start recording the transitions between the Standard screen and the
|
|
Trip and Navigator screens on the timeline, we select \e screenCanvas in
|
|
the Design mode \uicontrol Navigator view. We check that the playhead is at
|
|
frame 0, and then select the \inlineimage recordfill.png
|
|
(\uicontrol {Auto Key (K)}) button (or press \key k).
|
|
|
|
\image ebikedesign-timeline.png "Timeline view"
|
|
|
|
At frame 0, we set the X coordinate to 0 in \uicontrol Properties >
|
|
\uicontrol Geometry > \uicontrol Position to display the Trip screen.
|
|
We then move the playhead to frame 1000 and set the X coordinate to
|
|
-1286 to display the Standard screen. We continue by moving the playhead
|
|
to frame 2000 and setting the X coordinate to -2560 to display the
|
|
Navigator screen. At frame 3000, we set the X coordinate back to -1268
|
|
to return to the Standard screen. Finally, at frame 4000, we set the X
|
|
coordinate to -19 to return to the Trip screen.
|
|
|
|
When we deselect the record button to stop recording the timeline, the
|
|
new timeline appears in the view.
|
|
|
|
When we select \e tripScreen in the \uicontrol Navigator, we can see the
|
|
properties of the TripScreen QML type that we can animate in the
|
|
\uicontrol Properties view.
|
|
|
|
\image ebikedesign-trip-properties.png "Properties view of the Trip type"
|
|
|
|
We set values for the \uicontrol Visibility,
|
|
\uicontrol Opacity, \uicontrol currentFrame, and \uicontrol Scale properties
|
|
to fade out the current screen when moving to another one and to make the
|
|
speedometer grow and shrink in size depending on its current position.
|
|
|
|
For more information about using the timeline, see \l {Creating Animations}.
|
|
|
|
\section1 Using States to Move Between Screens
|
|
|
|
We use the \uicontrol States view to determine the contents of the viewport.
|
|
The animations are run in a particular state or when moving from one state
|
|
to another.
|
|
|
|
\image ebikedesign-states.png "States view"
|
|
|
|
We create the states for displaying the Trip, Standard, and Navigation
|
|
screens by moving from viewport to viewport in \e Screen01.ui.qml and
|
|
selecting \uicontrol {Create New State} in the \uicontrol States view
|
|
when the appropriate screen is displayed in the viewport.
|
|
|
|
We then create states for animations that are run when moving between the
|
|
screens: TripToStandard, StandardToNavigation, NavigationToStandard, and
|
|
StandardToTrip.
|
|
|
|
Finally, we create states for enlarging and shrinking the speedometer: Big,
|
|
ToBig, and FromBig.
|
|
|
|
We then return to the \uicontrol Timeline view and select
|
|
\inlineimage animation.png "Timeline Settings button"
|
|
to open the \uicontrol {Timeline Settings} dialog. We select
|
|
the \uicontrol Add button to create animations for each part
|
|
of the timeline. Therefore, the start and end frame of each
|
|
animation are important, whereas their duration is not.
|
|
|
|
\image ebikedesign-timeline-settings.png "Timeline Settings dialog"
|
|
|
|
We set the start and end frames for the transitions to states to match the
|
|
values of the X coordinate we set on the timeline.
|
|
|
|
In the \uicontrol {Transitions to states} field, we select the state to
|
|
switch to when the animation ends. In the lower part of the dialog, we
|
|
bind the states that don't have animations to fixed frames.
|
|
*/
|