gpt4 book ai didi

c++ - QSettings 如何将 QMap 保存到配置文件中

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:51:40 25 4
gpt4 key购买 nike

看完Save QList<int> to QSettings ,我想对 QMap<QString,int> 做同样的事情.我希望配置文件看起来像这样:

1111=1  
2222=3
4444=0

但是我遇到了一个编译错误:

Q_DECLARE_METATYPE(QMap<QString,int>)

Warning C4002: too many actual parameters for macro 'Q_DECLARE_METATYPE'
ConfigSettings.h(5) : error C2976: 'QMap' : too few template arguments

最佳答案

您收到的错误消息是由于预处理器不知道模板这一事实引起的。所以它正在解析宏调用是否有两个参数 - QMap<QStringint> , 这是没有意义的。

要按需要保存数据,最好自己将其序列化为 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();

关于c++ - QSettings 如何将 QMap<QString,int> 保存到配置文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6888375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com