【问题标题】:Restore Qt Window size and position problem恢复Qt Window大小和位置问题
【发布时间】:2019-09-17 16:50:56
【问题描述】:

我保存和恢复一个 QMainWindow 的大小和位置如下:

window->resize(savedSize);
window->move(savedPos);
window->show();

void closeEvent(QCloseEvent *e) {
    savedSize = window->size();
    savedPos = window->pos();
}

问题在于窗口位置由应用程序栏(Windows 最小化和最大化按钮所在的栏)更改。因此,当我打开和关闭窗口几次时,窗口会越来越向下移动(每次都是应用程序栏的大小)。如何准确恢复上次的位置?

问候,

【问题讨论】:

    标签: c++ windows qt


    【解决方案1】:

    您应该使用QWidget::saveGeometry() 来获取窗口大小并使用QWidget::restoreGeometry() 来恢复它,例如使用QSetting。你可能对QMainWindow::saveState() and QMainWindow::restoreState()也感兴趣

    【讨论】:

    • 文档还声明我们可以使用 resize() 和 pos() 代替,但我会检查 saveGeometry() 是否正确保持位置。
    猜你喜欢
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多