Сообщение об ошибке, которое вы получаете, вызвано тем, что препроцессор не знает о шаблонах.Таким образом, этот макрос вызывает синтаксический анализ, если он имеет два аргумента - QMap<QString
и int>
, что не имеет смысла.
Чтобы сохранить данные так, как вы хотите, лучше сериализовать их самостоятельноваш QSettings
.Примерно так:
settings.beginGroup("Whatever");
QMap<QString, int>::const_iterator i = map.constBegin();
while (i != map.constEnd()) {
settings.setValue(i.key(), i.value());
++i;
}
settings.endGroup();
Чтобы прочитать настройки, используйте тот же подход с помощью функции childKeys()
.
settings.beginGroup("Whatever");
QStringList keys = settings.childKeys();
foreach (QString key, keys) {
map[key] = settings.value(key).toInt();
}
settings.endGroup();