blob: 6a784eea6192f7e9e7fce394a011bb351217cfd0 (
plain)
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
|
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\example calculator
\title Qt SCXML Calculator Example
\ingroup examples-qtscxml
\image calculator.png
\brief A Qt Quick application that implements the Calculator example
presented in the SCXML Specification.
\e {Calculator} uses Qt SCXML to implement the
\l{SCXML Specification - Calculator Example}{Calculator Example}
presented in the SCXML Specification.
The state machine is specified in the \e statemachine.scxml file and
compiled into the \c CalculatorStateMachine class. The user interface is
created using Qt Quick.
\include examples-run.qdocinc
\section1 Instantiating the State Machine
We make the generated \c CalculatorStateMachine class available to QML by
registering it as a QML type in the \e calculator.cpp file:
\quotefromfile calculator/calculator.cpp
\skipto statemachine.h
\printuntil }
To use the CalculatorStateMachine type in a QML file, we import it:
\quotefromfile calculator/calculator.qml
\skipto CalculatorStateMachine
\printline CalculatorStateMachine
We instantiate a CalculatorStateMachine and listen to the \c updateDisplay
event. When it occurs, we change the text on the calculator display:
\skipto CalculatorStateMachine {
\printuntil /^ {4}\}/
When users press the calculator buttons, the buttons submit events to the
state machine:
\skipto DIGIT.
\skipto Button
\printuntil }
*/
|