5

我有一个带有一些内部可停靠窗口的主窗口。我可以移动、调整大小和重新停靠那些可停靠的窗口。关闭并重新打开程序后,我希望保留移动、大小和重新对接。有什么简单的方法来实现它吗?我认为它将使用设置。但是哪些信息应该保存在设置中。以及如何设置所有这些停靠窗口的默认布局?当点击一个动作按钮时,它可以被恢复。谢谢。

4

2 回答 2

21

查看 QMainWindow::saveState/restoreState。它正是这样做的。

保存:

QSettings settings;
settings.setValue("DOCK_LOCATIONS",this->saveState(SOME_VERSION_DEFINE));

恢复:

QSettings settings;
this->restoreState(settings.value("DOCK_LOCATIONS").toByteArray(),SOME_VERSION_DEFINE);
于 2013-04-25T11:54:07.300 回答
-3

不幸的是,不,没有内置的方法可以做到这一点。

您需要遍历所有工具栏和可停靠小部件,并将它们的位置(可能还有它们的可见性)写入文件。要恢复,您可以读取该文件并根据您读取的内容设置您的位置。

好消息是,一旦您设置了这样的系统,制作默认布局很容易 - 将所有小部件移动到您想要的位置,然后保存您的布局文件,就像您在上面执行用户布局一样。你甚至可以有多个布局,只要它们都有单独的文件。

于 2013-01-12T00:23:59.667 回答