Qt / C ++写/读键值对文件

时间:2015-08-12 17:18:17

标签: c++ qt file-io

我有一个基于Qt / C ++小部件的Mac应用程序。我有一系列复选框,单选按钮和用于存储设置的文本字段。我想在单击“更新”按钮时将它们保存到键值对文件,然后在加载应用程序时,读取此文件以将这些小部件设置回正确的状态。

有没有关于如何在某处完成此操作的示例?

1 个答案:

答案 0 :(得分:0)

以下是我在Mac上使用的内容。但是,如果您修改了setPath()对象的settings,则可以通过the documentation将其设置为在其他平台上运行。

mainwindow.h中,我必须添加以下条目:

void readSettings();
void writeSettings();
<私密插槽下的

然后,在mainwindow.cpp中,我添加了以下示例函数:

void MainWindow::readSettings()
{
    QSettings settings;
    settings.setPath(settings.IniFormat,settings.SystemScope,"/etc/xdg");
    settings.beginGroup("General");
    ui->checkBox1->setChecked(settings.value("checkBox1",false).toBool());
    settings.endGroup();
}

void MainWindow::writeSettings()
{
    QSettings settings;
    settings.setPath(settings.IniFormat,settings.SystemScope,"/etc/xdg");
    settings.beginGroup("General");
    settings.setValue("checkBox1",ui->checkBox1->isChecked());
    settings.endGroup();
}

您应该阅读QSettings page上的“范围”和setPath()了解更多信息。

然后,在MainWindow::MainWindow()函数中,我就这样了:

QCoreApplication::setOrganizationName("Example Company");
QCoreApplication::setOrganizationDomain("example.com");
QCoreApplication::setApplicationName("Example Product");

ui->setupUi(this);
this->readSettings();

请注意,设置readSettings()变量后,您只能ui。通过像我一样使用QCoreApplication类,我不必一直重新声明我一直在使用的设置。

然后,我拿了MainWindow并在其上添加了checkBox1updateButton,并将updateButton clicked()广告位代码设置为:

this->writeSettings();

现在,当窗口加载时,在绘制UI后,它会读取设置以将复选框值设置为您单击更新按钮时设置的值。