Seite 1 von 1

Zustandsmaschine innerhalb einer GUI

Verfasst: 16. April 2009 13:00
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 ?

Verfasst: 20. April 2009 09:16
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:
      ...
}






Verfasst: 20. April 2009 13:59
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...