Revision control

Copy as Markdown

// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\example trafficlight-widgets-dynamic
\title SCXML Traffic Light (Dynamic, Widgets)
\examplecategory {Data Processing & I/O}
\ingroup examples-qtscxml
\brief A widget-based application that uses a dynamically loaded state
machine to implement a traffic light.
\image trafficlight.png {Traffic light with green light illuminated}
\e{Traffic Light} 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-widgets-dynamic/trafficlight.cpp
\skipto connectToState
\printuntil greenLight
*/