Zustandsmaschine innerhalb einer GUI

Alles rund um die Programmierung mit Qt
Antworten
QtNoob2008
Beiträge: 54
Registriert: 10. April 2008 08:27

Zustandsmaschine innerhalb einer GUI

Beitrag von QtNoob2008 »

Hallo,

hab da mal eine generelle Frage.
Wie implementiere ich innerhalb einer GUI eine geeignete Zustandsmaschine.
Transitionen können ja Events von Buttons oder aber interne Events sein. Zudem möchte ich über die Zustandsmaschine bestimmte Elemente aktivieren bzw deaktivieren.
Meine Überlegung war es die Elemente der Oberfläche anhand eines Bitfeldes zu maskieren. Gibts es vielleicht eine bessere Lösung ?
Wie baut ihr sowas auf ?
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Beitrag von RavenIV »

Ich nehm da meistens einen enum.
Als Zustände kannst Du dann definieren: (Start, Button1Geklickt, ..., Ende)

Dann einen switch und fertig.

Code: Alles auswählen

in myTypes.h:
enum zustand {START, ROHDATEN, KOEFF_BER, KOEFF_ANZ, KOEFF_VER, KOEFF_SPE, FERTIG, ENDE};

in myHeader.h:
enum zustand m_zustand;

in myCode.cpp:
	switch(m_zustand)
	{
		case START:
			InitStart();
			break;
		case ROHDATEN:
      ...
}





Linux, das längste Text-Adventure aller Zeiten
QtNoob2008
Beiträge: 54
Registriert: 10. April 2008 08:27

Beitrag von QtNoob2008 »

Hi RavenIV,
vielen Dank für die Antwort!
Ja, genauso wie du es aufgeführt hast, habe ich das auch umgesetzt. Was halt irgendwie unschön ist, dass es immer einen WAIT Zustand geben muss, also die State Machine (switch-case) verlassen werden muss, weil die GUI drankommen muss...
Antworten