如何存储Qt gui布局并恢复它

How to store Qt gui layout and restore it

本文关键字:布局 gui 恢复 Qt 何存储 存储      更新时间:2023-10-16

我有一个Qt gui应用程序,它使用dock小部件和类似的项目,用户可以自己调整。

我希望布局在应用程序重新启动时保持不变。该应用程序已经具有一些保存和加载用户配置的功能,但我不知道如何存储布局(停靠栏的位置、它们的大小等),也不知道如何恢复它们。

有没有简单的方法可以做到这一点?还是我必须检查每个元素的大小、位置和位置并单独存储?

为了存储停靠窗口布局,您可以将QMainWindow::saveState(int version)QMainWindow::restoreState(const QByteArray &state, int version)与类结合使用QSettings

Qt文档中的示例:

void MyMainWindow::closeEvent(QCloseEvent *event)
{
    QSettings settings("MyCompany", "MyApp");
    settings.setValue("geometry", saveGeometry());
    settings.setValue("windowState", saveState());
    QMainWindow::closeEvent(event);
}