提问者:小点点

在QT中读取带有多个标记的。ini文件


1.例如

[Tag1]
key1=value1
key2=value2
key3=value3
 .
 .
[Tag2]
key1=value1
key2=value2
key3=value3
 .
 .

这是我的abc.ini文件的格式。 我可以读取tag1的值,但无法读取tag2的值

这是我的Tag1代码

QSettings settings("abc.ini", QSettings::IniFormat);
settings.beginGroup("Tag1");
const QStringList childKeys = settings.childKeys();
QHash<QString,QString>values;
foreach (const QString &childKey,childKeys)
values.insert(childKey, settings.value(childKey).toString());
settings.endGroup();
qDebug()<<values; 

有人能帮我读取tag2值并将它们存储在我定义的相同的QHash(值)中吗


共1个答案

匿名用户

您可以根据您的应用程序的需要开始/结束任意多个组,因此对tag2也可以这样做,读取子组并将它们插入到映射中

foreach (const QString &childKey,childKeys)
values.insert(childKey, settings.value(childKey).toString());
settings.endGroup();
qDebug()<<values;
 
//BEGIN TAG2
settings.beginGroup("Tag2");
childKeys = settings.childKeys(); //or create a new list 
foreach (const QString& childKey,childKeys)
values.insert(childKey, settings.value(childKey).toString());
settings.endGroup();
qDebug() << values;