Revision control
++ // 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
++ */