Jak napisać instrukcję switch dla ciągów w Qt?

Muszę utworzyć odpowiednik instrukcji switch / case dla łańcuchów w C ++ z Qt. Uważam, że najprostszym sposobem jest coś takiego (pseudo kod)

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";
}

Ale to nie wykorzystuje niektórych funkcji Qt. Czytałem o QStringList (aby znaleźć pozycję ciągu na liście ciągów) i std: map (zobaczJak łatwo odwzorować wyliczenia c ++ na łańcuchy czego nie rozumiem w pełni).

Czy jest lepszy sposób na przełączanie ciągów?

questionAnswers(3)

yourAnswerToTheQuestion