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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: считывание из реестра QMap<QString, T>  (Прочитано 2724 раз)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« : Июнь 11, 2010, 19:17 »

Здравствуйте. Я хочу считывать из реестра QMap произвольных (в частности QString и QStringList) типов, только что-то не могу сообразить как это правильно записать. Хотел сделать так, чтоб тип в шаблон подставлялся динамически. Смотрел на QVariant, QMetaType - не понял как их применить.
Вот так как-то неправильно выглядит:
Код
C++ (Qt)
template<typename T>
QMap<QString, T> loadMap(const QString &registryValue, T mapValueType)
{
QMap<QString, QVariant> loadedMap = QSettings().value(registryValue).toMap();
QMap<QString, T> map;
foreach(QString key, loadedMap.keys())
map.insert(key, loadedMap.value(key).toString()); // тут ещё и написал неправильно
return map;
}

Сохранение в реестр пишется легко:
Код
C++ (Qt)
template<typename T>
void saveMap(const QString &registryValue, const QMap<QString, T> &map)
{
QMap<QString, QVariant> mapToSave;
foreach(QString key, map.keys())
mapToSave.insert(key, map.value(key));
QSettings().setValue(registryValue, mapToSave);
}
« Последнее редактирование: Июнь 11, 2010, 20:20 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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