我有一个基于Qt / C ++小部件的Mac应用程序。我有一系列复选框,单选按钮和用于存储设置的文本字段。我想在单击“更新”按钮时将它们保存到键值对文件,然后在加载应用程序时,读取此文件以将这些小部件设置回正确的状态。
有没有关于如何在某处完成此操作的示例?
答案 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
并在其上添加了checkBox1
和updateButton
,并将updateButton clicked()
广告位代码设置为:
this->writeSettings();
现在,当窗口加载时,在绘制UI后,它会读取设置以将复选框值设置为您单击更新按钮时设置的值。