从配置文件 qsetting 中删除键/值对

Posted

技术标签:

【中文标题】从配置文件 qsetting 中删除键/值对【英文标题】:Delete Key/Value Pair from configuration file qsetting 【发布时间】:2017-03-10 17:51:07 【问题描述】:

我正在尝试在配置文件中搜索字符串,如果字符串匹配想要删除键/值对。我从文件中获取了 qstringlist。 就我尝试过的代码而言

int main(int argc, char *argv[])

        QSettings* settings= new QSettings("/home/sidheshwar/Desktop/temp.txt", QSettings::IniFormat);

        settings->beginGroup("Profiles");
        const QStringList childKeys = settings->childKeys();

        QStringList Keys;
        QStringList values;
        QString user="db-host";
        QString tempUser;


        foreach (const QString &childKey, childKeys)
        
            Keys << childKey;
            values << settings->value(childKey).toString();
        

for(int i=0;i< Keys.length();i++)
    if(user == values.at(i))
         qDebug() << " keys" << Keys[i] << endl;
tempUser=Keys[i];

    
       qDebug() << " tempUser" << tempUser << endl;



      return 0;

我该如何使用settings-&gt;remove(tempUser);

【问题讨论】:

我试了remove()函数没问题 实际上它对我不起作用..您引用的任何文档链接或任何代码 【参考方案1】:

在下面的示例中,我将向您展示如何从处理配置的文件中删除数据。

temp.ini 在执行之前。

[Profiles]
key1=db-host
key2=value2
key3=value3

ma​​in.cpp

#include <QCoreApplication>
#include <QSettings>
#include <QDebug>

int main(int argc, char *argv[])

    QCoreApplication a(argc, argv);

    QSettings* settings= new QSettings("temp.ini", QSettings::IniFormat);

    settings->beginGroup("Profiles");
    const QStringList childKeys = settings->childKeys();

    QStringList Keys;
    QStringList values;
    QString user="db-host";


    foreach (const QString &childKey, childKeys)
    
        Keys << childKey;
        values << settings->value(childKey).toString();
    

    for(int i=0;i< Keys.length();i++)
        if(user == values.at(i))
            qDebug() << " keys" << Keys[i];
            settings->remove(Keys[i]);
        
        qDebug() << Keys[i] << values.at(i);
    


    return a.exec();

输出:

temp.ini 执行后

[Profiles]
key2=value2
key3=value3

【讨论】:

以上是关于从配置文件 qsetting 中删除键/值对的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 QSettings 向我的配置文件添加注释?

Qt配置信息设置(QSettings在不同平台下的使用路径)

QT QSettings读写配置文件

Qt 配置文件QSettings

QSettings 读/写ini配置文件中的数组数据

QSettings如何在没有键值的情况下读取ini