Russian Qt Forum
Май 05, 2024, 02:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Перевод енума  (Прочитано 5135 раз)
ammaximus
Гость
« : Апрель 29, 2015, 08:47 »

В программе есть енум, который описывает состояние системы. Нужно сопоставить енумы с текстовыми строками, которые отображаются в комбобоксе. Эти строки должны быть переводимыми. Как бы вы это организовали на примере простейшего виджета?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Апрель 29, 2015, 08:57 »

Типа такого?
Код
C++ (Qt)
enum E {
   A = 0,
   B,
   C,
 
   max
}
 
QStringList l;
l.reserve(E.max);
l.insert(E.A, tr("A"));
l.insert(E.B, tr("B"));
 
QStringListModel model;
model.setStringList(l);
 
comboBox.setModel(&model);
 

На компиляберность не проверял, и уверен, можно сделать лучше Улыбающийся
Записан

Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #2 : Апрель 29, 2015, 09:19 »

Как вариант:
Как преобразовать перечисляемый тип в QString
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #3 : Апрель 29, 2015, 09:48 »

А никак в общем случае. Только вручную:

Код
C++ (Qt)
   ui->comboBox->addItem(tr("Emum1"), Foo::Emum1);
   ui->comboBox->addItem(tr("EmumN"), Foo::EmumN);
 

Записан

ArchLinux x86_64 / Win10 64 bit
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.082 секунд. Запросов: 22.