我认为通常的窗口管理器确定QMainWindow位置在桌面上的初始位置。我想自己设定初始职位。如何在Windows上使用Qt完成这项工作?
答案 0 :(得分:25)
您可以在构建MainWindow期间使用restoreGeometry()恢复窗口几何体,并使用restoreState()恢复停靠元素的状态...
QSettings settings("yourcompany", "yourapp");
restoreGeometry(settings.value("geometry").toByteArray());
restoreState(settings.value("state").toByteArray(),YOUR_UI_VERSION);
然后,如果您覆盖closeEvent(),则可以按如下方式保存状态:
QSettings settings("yourcompany", "yourapp");
settings.setValue("geometry", saveGeometry());
settings.setValue("state", saveState(YOUR_UI_VERSION));
YOUR_UI_VERSION是一个常量,当UI显着变化时,您应该增加该常量,以防止尝试恢复无效状态。
答案 1 :(得分:5)
我相信你正在寻找setGeometry。