什么是保存Qt GUI状态的最佳和适当方式,以便在关闭应用程序时获得相同的状态?
按状态我的意思是:当前索引(对于组合框...),调色板,小部件位置......在关闭应用程序之前
您可以使用QSettings类.
简单使用QSettings类(源自Qt文档的代码):
在应用程序代码成员函数的主窗口中保存和恢复设置:
void MainWindow::writeSettings()
{
QSettings settings("reaffer Soft", "reafferApp");
settings.beginGroup("MainWindow");
settings.setValue("size", size());
settings.setValue("pos", pos());
settings.endGroup();
}
void MainWindow::readSettings()
{
QSettings settings("reaffer Soft", "reafferApp");
settings.beginGroup("MainWindow");
resize(settings.value("size", QSize(400, 400)).toSize());
move(settings.value("pos", QPoint(200, 200)).toPoint());
settings.endGroup();
}
Run Code Online (Sandbox Code Playgroud)
从MainWindow构造函数和closeEvent覆盖中调用这两个函数,如下所示:
MainWindow::MainWindow()
{
// code from constructor
//...
readSettings();
}
void MainWindow::closeEvent(QCloseEvent *event)
{
//optional check if the user really want to quit
// and/or if the user want to save settings
writeSettings();
event->accept();
}
Run Code Online (Sandbox Code Playgroud)