如何在Qt中的会话之间存储窗口大小?

时间:2020-03-05 18:56:35  来源:igfitidea点击:

我在Qt应用程序中有一个QMainWindow。当我关闭它时,我希望它存储其当前的还原大小(未最大化时的窗口大小)。当我以还原模式(即未最大化)关闭窗口时,此方法效果很好。但是,如果我关闭了最大化的窗口,那么下次我启动应用程序并还原该应用程序(因为它以最大化模式启动)时,它不记得应该还原到的大小。有没有办法做到这一点?

解决方案

回答

我也遇到了这个问题。

我们可以执行的操作:除了窗口的大小之外,保存是否最大化(QWidget :: isMaximized())。

然后,下次启动应用程序时,请首先设置大小(QWidget :: resize()),然后在合适的情况下将其最大化(QWidget :: showMaximized())。恢复后,它应该返回正确的大小。

回答

使用QWidget :: saveGeometry功能将当前设置写入注册表。(使用QSettings访问注册表)。然后在启动时使用restoreGeometry()返回到先前的状态。