A framework for creating Qt State Machine metacode using a graphical user interface