QT 的 QSettings 读写 INI 文件的示例

21 篇文章 0 订阅
4 篇文章 0 订阅

在Qt中,QSettings 类提供了一种便捷的方式来存储和访问应用程序的设置,这些设置可以存储在多种格式的文件中,包括INI、Windows注册表(仅Windows平台)、XML和JSON等。以下是一些使用 QSettings 读写INI文件的示例。

写入INI文件

假设我们想要将一些设置保存到名为 settings.ini 的INI文件中,可以这样做:

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

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 创建一个QSettings对象,指定INI文件的名称和格式
    QSettings settings("settings.ini", QSettings::IniFormat);

    // 写入一些设置
    settings.setValue("User/Name", "John Doe");
    settings.setValue("User/Age", 30);
    settings.setValue("User/Email", "john.doe@example.com");

    // 输出调试信息,确认设置已保存(注意:这不会显示INI文件的内容)
    qDebug() << "Settings saved.";

    return a.exec();
}

在这个例子中,我们创建了一个 QSettings 对象,并指定了INI文件的名称(settings.ini)和格式(QSettings::IniFormat)。然后,我们使用 setValue() 方法写入了三个配置项。这些配置项将被保存到 settings.ini 文件中,如下所示(大致结构,具体格式可能略有不同):

[User]
Name=John Doe
Age=30
Email=john.doe@example.com

读取INI文件

接下来,假设我们想要从刚才保存的INI文件中读取这些设置,可以这样做:

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

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 创建一个QSettings对象,指定INI文件的名称和格式
    QSettings settings("settings.ini", QSettings::IniFormat);

    // 读取设置
    QString name = settings.value("User/Name", "Unknown").toString();
    int age = settings.value("User/Age", 0).toInt();
    QString email = settings.value("User/Email", "Unknown").toString();

    // 输出读取到的设置
    qDebug() << "Name:" << name;
    qDebug() << "Age:" << age;
    qDebug() << "Email:" << email;

    return a.exec();
}

在这个例子中,我们再次创建了一个 QSettings 对象,并指定了INI文件的名称和格式。然后,我们使用 value() 方法读取了之前保存的配置项。value() 方法的第二个参数是默认值,如果在INI文件中找不到指定的键,则会返回这个默认值。最后,我们使用 qDebug() 输出了读取到的设置。

请注意,虽然上面的代码示例使用了 QCoreApplication 作为应用程序的入口点,但 QSettings 类的使用并不限于GUI应用程序。它同样适用于控制台应用程序和其他类型的Qt应用程序。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
QSettingsQt 框架中提供的一个简单的读写配置文件的类。它可以用来读写不同格式的配置文件,包括 ini、XML、注册表等等。在这里,我们介绍一下如何使用 QSettings读写 ini 文件。 在使用 QSettings读写 ini 文件之前,需要先创建一个 QSettings 对象,并指定要读写配置文件的路径和格式。在本例中,我们假设配置文件的路径为 config.ini,格式为 ini。代码如下: ```cpp QSettings settings("config.ini", QSettings::IniFormat); ``` 接下来,我们可以使用 setValue() 和 value() 函数来写入和读取配置项。例如,我们可以将一个字符串写入配置文件中: ```cpp settings.setValue("name", "John"); ``` 接着,我们可以使用 value() 函数来读取这个配置项: ```cpp QString name = settings.value("name").toString(); ``` 如果配置项不存在,value() 函数会返回一个空值,因此我们需要使用默认值来避免程序出错。例如,我们可以使用下面的代码来读取一个整数配置项,如果配置项不存在,则返回默认值 100: ```cpp int value = settings.value("number", 100).toInt(); ``` 最后,需要注意的是,在使用完 QSettings 对象后,应该调用 sync() 函数将数据写入到文件中: ```cpp settings.sync(); ``` 完整的读写 ini 文件示例代码如下: ```cpp #include <QSettings> int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); // 创建 QSettings 对象 QSettings settings("config.ini", QSettings::IniFormat); // 写入配置项 settings.setValue("name", "John"); settings.setValue("age", 30); // 读取配置项 QString name = settings.value("name").toString(); int age = settings.value("age", 0).toInt(); // 输出配置项 qDebug() << "Name:" << name; qDebug() << "Age:" << age; // 同步数据到文件settings.sync(); return app.exec(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许野平

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值