Название: Обход перечисления Отправлено: vanix от Февраль 17, 2011, 05:17 Подскажите пожалуйста как обойти перечисление и получить список наименований всех элементов, ну к примеру перечисления Qt::GlobalColor, пробывал следующим образом:
Код: QStringList lst; Название: Re: Обход перечисления Отправлено: _govorilka от Февраль 17, 2011, 08:01 Для твоего конкретного(!!!) примера можно написать что-то подобное:
Код: for(int color = Qt::color0; color <= Qt::transparent; ++color) Воообще перечисления в C++ - это просто набор целых констант (переменных), а перебирать "списки" переменных в C++ нельзя. Почитай тут: http://lib.ru/CPPHB/cpptut.txt (http://lib.ru/CPPHB/cpptut.txt), глава 2.5.1 про перечисления. Название: Re: Обход перечисления Отправлено: _govorilka от Февраль 17, 2011, 08:08 Я сделал список всех SVG цветов в своём проекте через map: http://code.google.com/p/fireworks/source/browse/src/fwcore/fwcolor.cpp (http://code.google.com/p/fireworks/source/browse/src/fwcore/fwcolor.cpp). Посмотри, возможно тебе пригодиться...
Название: Re: Обход перечисления Отправлено: crackedmind от Февраль 17, 2011, 10:25 Есть вариант обойти все перечисления, если они объявлены так:
Код
Обходишь примерно вот так: Код
Но enum должен быть объявлен внутри класса наследованного от QObject'a |