창의 기하 구조 복원

이 문서는 geometry 속성을 사용하여 창의 기하학적 정보를 저장하고 복원하는 방법을 설명합니다. Windows에서는 기본적으로 ` QWindow::geometry()`의 결과를 저장해 두었다가, 다음 세션에서 ` show()`를 호출하기 전에 ` QWindow::setGeometry()`를 호출하는 방식입니다.

X11에서는 보이지 않는 창에는 아직 테두리가 없기 때문에 이 방법이 작동하지 않을 수 있습니다. 창 관리자가 나중에 창에 테두리를 추가합니다. 이 경우, 창은 테두리 크기에 따라 화면의 하단/오른쪽 모서리 쪽으로 이동합니다. X에서는 이러한 이동을 방지하는 방법을 제공하지만, 일부 창 관리자는 이 기능을 제대로 구현하지 못합니다.

를 사용할 때 Qt Widgets를 사용할 때, Qt Widgets는 위젯 창의 기하 구조와 상태를 저장하고 복원해 주는 함수를 제공합니다. ` QWidget::saveGeometry()`는 창 기하 구조와 최대화/전체 화면 상태를 저장하고, ` QWidget::restoreGeometry()`는 이를 복원합니다. 복원 함수는 또한 복원된 기하 구조가 사용 가능한 화면 영역을 벗어나는지 확인하고, 벗어난 경우 적절하게 수정합니다:

void MyMainWindow::closeEvent(QCloseEvent *event)
{
    QSettings settings("MyCompany", "MyApp");
    settings.setValue("geometry", saveGeometry());
    settings.setValue("windowState", saveState());
    QMainWindow::closeEvent(event);
}
void MainWindow::readSettings()
{
    QSettings settings("MyCompany", "MyApp");
    restoreGeometry(settings.value("myWidget/geometry").toByteArray());
    restoreState(settings.value("myWidget/windowState").toByteArray());
}

또 다른 해결책은 pos()과 size()을 모두 저장해 둔 다음, show()을 호출하기 전에 QWidget::resize()과 move()을 사용하여 지오메트리를 복원하는 것입니다.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.