Как написать оператор switch для строк в Qt?
Мне нужно создать эквивалент оператора switch / case для строк в C ++ с помощью Qt. Я считаю, что самый простой способ это что-то вроде этого (псевдокод)
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";
}
Но это неt воспользоваться некоторыми возможностями Qt. Я'мы читали о QStringList 's (чтобы найти положение строки в списке строк), и std: map (см.Как легко отобразить перечисления c ++ в строки который я неТ полностью понимаю).
Есть ли лучший способ сделать переключение на строки?