Qt:如何设置主窗口的初始位置?

20 c++ windows qt

我认为通常的窗口管理器确定QMainWindow位置在桌面上的初始位置.我想自己设定初始职位.如何在Windows上使用Qt完成此操作?

Pau*_*xon 25

您可以在构建MainWindow期间使用restoreGeometry()恢复窗口几何,以及使用restoreState()恢复停靠元素的状态...

    QSettings settings("yourcompany", "yourapp");

    restoreGeometry(settings.value("geometry").toByteArray());
    restoreState(settings.value("state").toByteArray(),YOUR_UI_VERSION);
Run Code Online (Sandbox Code Playgroud)

然后,如果重写closeEvent(),则可以按如下方式保存状态:

    QSettings settings("yourcompany", "yourapp");

    settings.setValue("geometry", saveGeometry());
    settings.setValue("state", saveState(YOUR_UI_VERSION));
Run Code Online (Sandbox Code Playgroud)

YOUR_UI_VERSION是一个常量,当UI显着变化时,您应该增加该常量,以防止尝试恢复无效状态.


Joh*_*n T 5

我相信你正在寻找setGeometry.

  • 最新版Qt的便捷链接:http://doc.trolltech.com/latest/qlayoutitem.html#setGeometry (2认同)