使用多个标签在QT中读取.ini文件
Reading .ini file in QT with multiple tags
1.For 例子
[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(values) 中
您可以 begin/end 您的应用需要多少组,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;
使用此代码
QSettings settings("file.ini", QSettings::IniFormat);
QHash<QString,QString>values;
settings.beginGroup("Tag1");
QStringList childKeys = settings.childKeys();
foreach (const QString &childKey,childKeys)
values.insert(childKey, settings.value(childKey).toString());
settings.endGroup();
settings.beginGroup("Tag2");
childKeys = settings.childKeys();
foreach (const QString &childKey,childKeys)
values.insert(childKey, settings.value(childKey).toString());
settings.endGroup();
qDebug()<<values;
在您的示例中,您在不同的组中拥有相同的密钥,因此它将使用 QHash
删除旧值
但是如果你想在同一个键中有多个值,只需将 QHash 替换为 QMultiHash
1.For 例子
[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(values) 中
您可以 begin/end 您的应用需要多少组,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;
使用此代码
QSettings settings("file.ini", QSettings::IniFormat);
QHash<QString,QString>values;
settings.beginGroup("Tag1");
QStringList childKeys = settings.childKeys();
foreach (const QString &childKey,childKeys)
values.insert(childKey, settings.value(childKey).toString());
settings.endGroup();
settings.beginGroup("Tag2");
childKeys = settings.childKeys();
foreach (const QString &childKey,childKeys)
values.insert(childKey, settings.value(childKey).toString());
settings.endGroup();
qDebug()<<values;
在您的示例中,您在不同的组中拥有相同的密钥,因此它将使用 QHash
删除旧值但是如果你想在同一个键中有多个值,只需将 QHash 替换为 QMultiHash