, QSettings, Qt ( ).
//:
void MainWindow::readSettings()
{
QSettings settings("Moose Soft", "Clipper");
settings.beginGroup("MainWindow");
resize(settings.value("size", QSize(400, 400)).toSize());
move(settings.value("pos", QPoint(200, 200)).toPoint());
settings.endGroup();
}
void MainWindow::writeSettings()
{
QSettings settings("Moose Soft", "Clipper");
settings.beginGroup("MainWindow");
settings.setValue("size", size());
settings.setValue("pos", pos());
settings.endGroup();
}
readSettings() MainWindow:
MainWindow::MainWindow()
{
...
readSettings();
}
while writeSettings() :
void MainWindow::closeEvent(QCloseEvent *event)
{
writeSettings();
event->accept();
}
, : , . , , Windows, QSettings::NativeFormat , %appdata%, QSettings::IniFormat. , .
My personal preference is to install IniFormatfor Windows (since registry data is not easily portable) and NativeFormatfor Linux and macOS, for example:
QSettings *settings;
if ( (os == "Linux") | (os == "macOS") ) {
settings = new QSettings(QSettings::NativeFormat, QSettings::UserScope, "Moose Soft", "Clipper");
} else {
settings = new QSettings(QSettings::IniFormat, QSettings::UserScope, "Moose Soft", "Clipper");
};
source
share