blob: 16424e61e40a4ba80721148fa8b5a371c894e2eb (
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
52
53
54
55
56
|
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\example trafficlight-widgets-dynamic
\title Qt SCXML Traffic Light Example (Dynamic)
\ingroup examples-qtscxml
\brief A widget-based application that uses a dynamically loaded state
machine to implement a traffic light.
\image trafficlight.png
\e{Traffic Light Example (Dynamic)} demonstrates how to connect to the
active properties of a state in a dynamically loaded state machine.
The UI is created using Qt Widgets.
\include examples-run.qdocinc
\section1 Dynamically Loading the State Machine
We link against the Qt SCXML module by adding the following lines to the
example's build files.
To \e .pro when using qmake:
\quotefromfile trafficlight-widgets-dynamic/trafficlight-widgets-dynamic.pro
\skipto QT
\printline scxml
To \e CMakeLists.txt when using cmake:
\quotefromfile trafficlight-widgets-dynamic/CMakeLists.txt
\skipto find_package
\printline Scxml
\skipto target_link_libraries
\printuntil )
We dynamically create the state machine in
\e trafficlight-widgets-dynamic.cpp:
\quotefromfile trafficlight-widgets-dynamic/trafficlight-widgets-dynamic.cpp
\skipto trafficlight.h
\printuntil /^ {4}\}/
And then instantiate it:
\printuntil /^\}/
\include trafficlight-state-machine.qdocinc
We connect to the states as follows:
\quotefromfile trafficlight-common/trafficlight.cpp
\skipto connectToState
\printuntil greenLight
*/
|