【发布时间】:2009-10-08 15:05:09
【问题描述】:
是否有任何简单的方法可以在与上次打开应用程序时相同的位置打开 Qt 对话框?
即在应用程序会话之间保留对话框的位置?
通过简单的方法我的意思是不要在文件中手动写入窗口位置,然后读取:)
【问题讨论】:
-
你的意思是 QWidget 上的 setGeometry 之类的东西?
是否有任何简单的方法可以在与上次打开应用程序时相同的位置打开 Qt 对话框?
即在应用程序会话之间保留对话框的位置?
通过简单的方法我的意思是不要在文件中手动写入窗口位置,然后读取:)
【问题讨论】:
您可以使用QSettings 类来实现这一点。它是一个抽象类,允许您的应用程序存储其设置,以便在下次启动时检索它们。
保存设置:
QSettings settings("ValueName", "Value");
读取设置:
QString v = settings.value("ValueName");
【讨论】:
将 QSettings 与 QWidget::restoreGeometry() 和 QWidget::saveGeometry() 一起使用。
【讨论】:
最好保存 dialog->pos(), dialog->size(), dialog->isMaximized(),因为 dialog->saveGeometry() 不会最大化窗口。
QSettings 是保存配置的首选方式
【讨论】: