Wie schreibe ich eine switch-Anweisung für Strings in Qt?

Ich muss das Äquivalent einer switch / case-Anweisung für Strings in C ++ mit Qt erstellen. Ich glaube, der einfachste Weg ist so etwas (Pseudocode)

enum colours { red, green, blue };
QString array[] colour_names = { "red", "green", "blue" };
switch (color_names[user_string]) {
  case red: answer="Chose red";
  case green: answer="Chose green";
  case blue: answer="Chose blue";
  other: answer="Invalid choice";
}

Dies nutzt jedoch einige der Funktionen von Qt nicht aus. Ich habe über QStringList's gelesen (um die Position des Strings in einer Liste von Strings zu finden) und std: map (sieheSo ordnen Sie Strings einfach C ++ - Enums zu was ich nicht ganz verstehe).

Gibt es eine bessere Möglichkeit, Strings einzuschalten?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage