以下是我在 Mac 上使用的。但是,如果您修改了settings 对象的setPath(),则可以通过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();
请注意,您只能在设置 ui 变量后才能使用 readSettings()。通过像我一样使用QCoreApplication 类,我不必一直重新声明我一直在使用的设置。
然后,我取了MainWindow并在上面添加了checkBox1和updateButton,并将updateButtonclicked()插槽代码设置为:
this->writeSettings();
现在,当窗口加载时,在绘制 UI 后,它会读取设置以将复选框值设置为单击更新按钮时设置的值。