crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Как преобразовать перечисляемый тип в QString ?
Qt =(
  опции профиля:
сообщение 7.3.2009, 23:45
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 20.1.2009
Пользователь №: 497

Спасибо сказали: 1 раз(а)




Репутация:   0  


Чтобы не плодить неинтересные темы напишу в этой.
Как преобразовать перечисляемый тип
typedef enum ..... {
......,
......,
......,
} .......;
в QString ???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
SABROG
  опции профиля:
сообщение 8.3.2009, 11:46
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Предлагаю не ждать стандартов, а воспользоваться мета-объектными средствами Qt.

#include <QtCore/QtGlobal>
#include <QtCore/QtDebug>
#include <QtCore/QMetaObject>
#include <QtCore/QMetaEnum>

class Programmer : public QObject
{
    Q_OBJECT
public:
    enum Language {ASM, C, CPP, PASCAL, FORTRAN, BASIC, JAVA};
    Q_ENUMS(Language)
};

int main(int argc, char *argv[])
{
    const QMetaObject &mo = Programmer::staticMetaObject;
    int index = mo.indexOfEnumerator("Language");
    QMetaEnum me = mo.enumerator(index);
    Programmer::Language p = Programmer::CPP;
    Programmer::Language l= static_cast<Programmer::Language>(me.keyToValue("CPP"));
    qDebug() << me.valueToKey(p) << ":" << l;
    return 0;
}

#include "main.moc"


CPP : 2


Не забудьте прописать CONFIG += console в .pro файле.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 17.2.2025, 1:54