forked from qt-creator/qt-creator
Doc: Move information about states to "Adding States"
Now that the states have their own topic, all information about using states should be found there. Change-Id: Iab1d17aeca9774e3e4bd3e50c776862aa4697a47 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -319,106 +319,6 @@
|
||||
|
||||
\endlist
|
||||
|
||||
\section1 Using States
|
||||
|
||||
Use states and transitions to navigate between screens.
|
||||
|
||||
QML states typically describe user interface configurations, such as the UI
|
||||
controls, their properties and behavior and the available actions. For
|
||||
example, you can use states to create two screens.
|
||||
|
||||
To add states, click the empty slot in the \uicontrol States pane. Then modify the
|
||||
new state in the \uicontrol {Form Editor} or the \uicontrol Properties pane.
|
||||
|
||||
\image qmldesigner-states.png "States pane"
|
||||
|
||||
The properties that you change in a state are highlighted with blue color.
|
||||
In the \uicontrol {Text Editor}, you can see the changes recorded as changes
|
||||
to the base state.
|
||||
|
||||
To keep the QML code clean, you should create a base state that contains all
|
||||
the types you will need in the application. You can then create states,
|
||||
in which you hide and show a set of items and modify their properties.
|
||||
This allows you to:
|
||||
|
||||
\list
|
||||
|
||||
\li Align items on different screens with each other.
|
||||
|
||||
\li Avoid excessive property changes. If an item is invisible in the
|
||||
base state, you must define all changes to its child types as
|
||||
property changes, which leads to complicated QML code.
|
||||
|
||||
\li Minimize the differences between the base state and the other states
|
||||
to keep the QML code short and readable and to improve performance.
|
||||
|
||||
\li Avoid problems when using transitions and animation when changing
|
||||
states.
|
||||
|
||||
\endlist
|
||||
|
||||
To create screens for an application by using states:
|
||||
|
||||
\list 1
|
||||
|
||||
\li In the base state, add all items you will need in the
|
||||
application (1).
|
||||
While you work on one screen, you can click the
|
||||
\inlineimage eye_open.png
|
||||
icon to hide items on the canvas that are not part of a screen.
|
||||
|
||||
\li In the \uicontrol States pane, click the empty slot to create a new state
|
||||
and give it a name. For example, \c Normal.
|
||||
|
||||
\li In the \uicontrol Properties pane (2), deselect the \uicontrol Visibility check box
|
||||
or set \uicontrol Opacity to 0 for each item that is not needed in this
|
||||
view. If you specify the setting for the parent item, all child
|
||||
items inherit it and are also hidden.
|
||||
|
||||
\image qmldesigner-screen-design.png "Designing screens"
|
||||
|
||||
\li Create additional states for each screen and set the visibility
|
||||
or opacity of the items in the screen.
|
||||
|
||||
\li To determine which view opens when the application starts, use the
|
||||
\uicontrol {Text Editor} to set the state of the root item of the
|
||||
.qml file, as specified by the following code snippet:
|
||||
|
||||
\qml
|
||||
Item {
|
||||
state: "Normal"
|
||||
}
|
||||
\endqml
|
||||
|
||||
\endlist
|
||||
|
||||
\section2 Using SCXML State Machines
|
||||
|
||||
To use QML together with an SCXML state machine, add states and bind them to
|
||||
the state machine in the \uicontrol Backends tab in the Design mode, as
|
||||
described in \l {Managing C++ Backend Objects}.
|
||||
|
||||
In the \uicontrol States pane, you can edit the \c when condition of states
|
||||
to map QML states to the states of the SCXML state machine. For an example,
|
||||
see \l {Qt SCXML Traffic Light QML Example (Dynamic)}.
|
||||
|
||||
\image qmldesigner-states-when-condition.png
|
||||
|
||||
\section1 Animating Screens
|
||||
|
||||
To make movement between states smooth, you can specify transitions. You can
|
||||
use different types of animated transitions. For example, you can animate
|
||||
changes to property values and colors. You can use rotation animation to
|
||||
control the direction of rotation. For more information, see
|
||||
\l{Animation and Transitions in Qt Quick}.
|
||||
|
||||
You can use the \c ParallelAnimation type to start several animations at
|
||||
the same time. Or use the \c SequentialAnimation type to run them one
|
||||
after another.
|
||||
|
||||
You can use the \uicontrol {Text Editor} to specify transitions. For more
|
||||
information, see \l{Transition}.
|
||||
|
||||
\section1 Adding User Interaction Methods
|
||||
|
||||
You can use the following QML types to add basic interaction methods to
|
||||
@@ -502,7 +402,6 @@
|
||||
|
||||
\endlist
|
||||
|
||||
|
||||
\section1 Implementing Application Logic
|
||||
|
||||
A user interface is only a part of an application, and not really useful by itself.
|
||||
|
45
doc/src/qtquick/qtquick-states-scxml.qdocinc
Normal file
45
doc/src/qtquick/qtquick-states-scxml.qdocinc
Normal file
@@ -0,0 +1,45 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2018 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Creator 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.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
//! [scxml state machines]
|
||||
|
||||
\section2 Using SCXML State Machines
|
||||
|
||||
To use QML together with an SCXML state machine, add states and bind them to
|
||||
the state machine in the \uicontrol Backends tab in the Design mode, as
|
||||
described in \l {Managing C++ Backend Objects}.
|
||||
|
||||
In the \uicontrol States pane, you can edit the \c when condition of states
|
||||
to map QML states to the states of the SCXML state machine. For an example,
|
||||
see \l {Qt SCXML Traffic Light QML Example (Dynamic)}.
|
||||
|
||||
\image qmldesigner-states-when-condition.png
|
||||
|
||||
If you add animation to the states, you can run the application to test the
|
||||
animation.
|
||||
|
||||
//! [scxml state machines]
|
||||
*/
|
@@ -79,10 +79,79 @@
|
||||
You can preview the states in the \uicontrol State pane and click them to
|
||||
switch between states on the canvas.
|
||||
|
||||
For more information about using states, see \l{Creating Screens}.
|
||||
\section1 Using States
|
||||
|
||||
If you add animation to the states, you can run the application to test the
|
||||
animation.
|
||||
QML states typically describe user interface configurations, such as the UI
|
||||
controls, their properties and behavior and the available actions. For
|
||||
example, you can use states to create two screens.
|
||||
|
||||
For more information about adding animation, see \l{Animating Screens}.
|
||||
To add states, click the empty slot in the \uicontrol States pane.
|
||||
Then modify the new state in the \uicontrol {Form Editor} or the
|
||||
\uicontrol Properties pane.
|
||||
|
||||
\image qmldesigner-states.png "States pane"
|
||||
|
||||
The properties that you change in a state are highlighted with blue color.
|
||||
In the \uicontrol {Text Editor}, you can see the changes recorded as changes
|
||||
to the base state.
|
||||
|
||||
To keep the QML code clean, you should create a base state that contains all
|
||||
the types you will need in the application. You can then create states,
|
||||
in which you hide and show a set of items and modify their properties.
|
||||
This allows you to:
|
||||
|
||||
\list
|
||||
\li Align items on different screens with each other.
|
||||
\li Avoid excessive property changes. If an item is invisible in the
|
||||
base state, you must define all changes to its child types as
|
||||
property changes, which leads to complicated QML code.
|
||||
\li Minimize the differences between the base state and the other states
|
||||
to keep the QML code short and readable and to improve performance.
|
||||
\li Avoid problems when using transitions and animation when changing
|
||||
states.
|
||||
\endlist
|
||||
|
||||
To create screens for an application by using states:
|
||||
|
||||
\list 1
|
||||
\li In the base state, add all items you will need in the application
|
||||
(1). While you work on one screen, you can click the
|
||||
\inlineimage eye_open.png
|
||||
icon to hide items on the canvas that are not part of a screen.
|
||||
\li In the \uicontrol States pane, click the empty slot to create a
|
||||
new state and give it a name. For example, \c Normal.
|
||||
\li In the \uicontrol Properties pane (2), deselect the
|
||||
\uicontrol Visibility check box or set \uicontrol Opacity to 0
|
||||
for each item that is not needed in this view. If you specify
|
||||
the setting for the parent item, all child items inherit it and
|
||||
are also hidden.
|
||||
\image qmldesigner-screen-design.png "Designing screens"
|
||||
\li Create additional states for each screen and set the visibility
|
||||
or opacity of the items in the screen.
|
||||
\li To determine which view opens when the application starts, use the
|
||||
\uicontrol {Text Editor} to set the state of the root item of the
|
||||
.qml file, as specified by the following code snippet:
|
||||
\qml
|
||||
Item {
|
||||
state: "Normal"
|
||||
}
|
||||
\endqml
|
||||
\endlist
|
||||
|
||||
\include qtquick-states-scxml.qdocinc scxml state machines
|
||||
|
||||
\section1 Animating Transitions Between States
|
||||
|
||||
To make movement between states smooth, you can specify transitions. You can
|
||||
use different types of animated transitions. For example, you can animate
|
||||
changes to property values and colors. You can use rotation animation to
|
||||
control the direction of rotation. For more information, see
|
||||
\l{Animation and Transitions in Qt Quick}.
|
||||
|
||||
You can use the \c ParallelAnimation type to start several animations at
|
||||
the same time. Or use the \c SequentialAnimation type to run them one
|
||||
after another.
|
||||
|
||||
You can use the \uicontrol {Text Editor} to specify transitions. For more
|
||||
information, see \l{Transition}.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user