QWindow Class
QWindow 클래스는 기본 윈도우 시스템에서 윈도우를 나타냅니다. 더 보기...
| 헤더: | #include <QWindow> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 상속: | QObject 그리고 QSurface |
| 상속받는 항목: |
공개 유형
| enum | AncestorMode { ExcludeTransients, IncludeTransients } |
| enum | Visibility { Windowed, Minimized, Maximized, FullScreen, AutomaticVisibility, Hidden } |
속성
|
|
공개 함수
| QWindow(QScreen *targetScreen = nullptr) | |
| QWindow(QWindow *parent) | |
| virtual | ~QWindow() |
| QSize | baseSize() const |
| Qt::ScreenOrientation | contentOrientation() const |
| void | create() |
| QCursor | cursor() const |
| void | destroy() |
| qreal | devicePixelRatio() const |
| QString | filePath() const |
| Qt::WindowFlags | flags() const |
| virtual QObject * | focusObject() const |
| QRect | frameGeometry() const |
| QMargins | frameMargins() const |
| QPoint | framePosition() const |
| QRect | geometry() const |
| int | height() const |
| QIcon | icon() const |
| bool | isActive() const |
| bool | isAncestorOf(const QWindow *child, QWindow::AncestorMode mode = IncludeTransients) const |
| bool | isExposed() const |
| bool | isModal() const |
| bool | isTopLevel() const |
| bool | isVisible() const |
(since 6.0) QPointF | mapFromGlobal(const QPointF &pos) const |
| QPoint | mapFromGlobal(const QPoint &pos) const |
(since 6.0) QPointF | mapToGlobal(const QPointF &pos) const |
| QPoint | mapToGlobal(const QPoint &pos) const |
| QRegion | mask() const |
| int | maximumHeight() const |
| QSize | maximumSize() const |
| int | maximumWidth() const |
| int | minimumHeight() const |
| QSize | minimumSize() const |
| int | minimumWidth() const |
| Qt::WindowModality | modality() const |
| qreal | opacity() const |
| QWindow * | parent(QWindow::AncestorMode mode = ExcludeTransients) const |
| QPoint | position() const |
| void | reportContentOrientationChange(Qt::ScreenOrientation orientation) |
| QSurfaceFormat | requestedFormat() const |
| void | resize(const QSize &newSize) |
| void | resize(int w, int h) |
(since 6.9) QMargins | safeAreaMargins() const |
| QScreen * | screen() const |
| void | setBaseSize(const QSize &size) |
| void | setCursor(const QCursor &cursor) |
| void | setFilePath(const QString &filePath) |
| void | setFlag(Qt::WindowType flag, bool on = true) |
| void | setFlags(Qt::WindowFlags flags) |
| void | setFormat(const QSurfaceFormat &format) |
| void | setFramePosition(const QPoint &point) |
(since 6.12) void | setFramePosition(int x, int y) |
| void | setIcon(const QIcon &icon) |
| bool | setKeyboardGrabEnabled(bool grab) |
| void | setMask(const QRegion ®ion) |
| void | setMaximumSize(const QSize &size) |
| void | setMinimumSize(const QSize &size) |
| void | setModality(Qt::WindowModality modality) |
| bool | setMouseGrabEnabled(bool grab) |
| void | setOpacity(qreal level) |
| void | setParent(QWindow *parent) |
| void | setPosition(const QPoint &pt) |
| void | setPosition(int posx, int posy) |
| void | setScreen(QScreen *newScreen) |
| void | setSizeIncrement(const QSize &size) |
| void | setSurfaceType(QSurface::SurfaceType surfaceType) |
| void | setTransientParent(QWindow *parent) |
| void | setVisibility(QWindow::Visibility v) |
| void | setVulkanInstance(QVulkanInstance *instance) |
| void | setWindowState(Qt::WindowState state) |
| void | setWindowStates(Qt::WindowStates state) |
| QSize | sizeIncrement() const |
| QString | title() const |
| QWindow * | transientParent() const |
| Qt::WindowType | type() const |
| void | unsetCursor() |
| QWindow::Visibility | visibility() const |
| QVulkanInstance * | vulkanInstance() const |
| int | width() const |
| WId | winId() const |
| Qt::WindowState | windowState() const |
| Qt::WindowStates | windowStates() const |
| int | x() const |
| int | y() const |
재구현된 공용 함수
| virtual QSurfaceFormat | format() const override |
| virtual QSize | size() const override |
| virtual QSurface::SurfaceType | surfaceType() const override |
공개 슬롯
| void | alert(int msec) |
| bool | close() |
| void | hide() |
| void | lower() |
| void | raise() |
| void | requestActivate() |
| void | requestUpdate() |
| void | setGeometry(const QRect &rect) |
| void | setGeometry(int posx, int posy, int w, int h) |
| void | setHeight(int arg) |
| void | setMaximumHeight(int h) |
| void | setMaximumWidth(int w) |
| void | setMinimumHeight(int h) |
| void | setMinimumWidth(int w) |
| void | setTitle(const QString &) |
| void | setVisible(bool visible) |
| void | setWidth(int arg) |
| void | setX(int arg) |
| void | setY(int arg) |
| void | show() |
| void | showFullScreen() |
| void | showMaximized() |
| void | showMinimized() |
| void | showNormal() |
| bool | startSystemMove() |
| bool | startSystemResize(Qt::Edges edges) |
신호
| void | activeChanged() |
| void | contentOrientationChanged(Qt::ScreenOrientation orientation) |
| void | flagsChanged(Qt::WindowFlags flags) |
| void | focusObjectChanged(QObject *object) |
| void | heightChanged(int arg) |
| void | maximumHeightChanged(int arg) |
| void | maximumWidthChanged(int arg) |
| void | minimumHeightChanged(int arg) |
| void | minimumWidthChanged(int arg) |
| void | modalityChanged(Qt::WindowModality modality) |
| void | opacityChanged(qreal opacity) |
(since 6.9) void | safeAreaMarginsChanged(QMargins margins) |
| void | screenChanged(QScreen *screen) |
| void | transientParentChanged(QWindow *transientParent) |
| void | visibilityChanged(QWindow::Visibility visibility) |
| void | visibleChanged(bool arg) |
| void | widthChanged(int arg) |
| void | windowStateChanged(Qt::WindowState windowState) |
| void | windowTitleChanged(const QString &title) |
| void | xChanged(int arg) |
| void | yChanged(int arg) |
정적 공용 멤버
| QWindow * | fromWinId(WId id) |
보호된 함수
| virtual void | closeEvent(QCloseEvent*ev) |
| 가상 void | exposeEvent(QExposeEvent*ev) |
| 가상 void | focusInEvent(QFocusEvent*ev) |
| 가상 void | focusOutEvent(QFocusEvent*ev) |
| 가상 void | hideEvent(QHideEvent*ev) |
| 가상 void | keyPressEvent(QKeyEvent*ev) |
| 가상 void | keyReleaseEvent(QKeyEvent*ev) |
| 가상 void | mouseDoubleClickEvent(QMouseEvent*ev) |
| 가상 void | mouseMoveEvent(QMouseEvent*ev) |
| 가상 void | mousePressEvent(QMouseEvent*ev) |
| 가상 void | mouseReleaseEvent(QMouseEvent*ev) |
| 가상 void | moveEvent(QMoveEvent*ev) |
| 가상 bool | nativeEvent(const QByteArray&eventType, void*message, qintptr*result) |
(since 6.0) 가상 void | paintEvent(QPaintEvent*ev) |
| 가상 void | resizeEvent(QResizeEvent*ev) |
| 가상 void | showEvent(QShowEvent*ev) |
| 가상 void | tabletEvent(QTabletEvent*ev) |
| 가상 void | touchEvent(QTouchEvent*ev) |
| 가상 void | wheelEvent(QWheelEvent*ev) |
재구현된 보호 함수
| virtual bool | event(QEvent *ev) override |
상세 설명
부모 창이 지정된 창은 해당 부모 창의 네이티브 자식 창이 됩니다.
일반적으로 애플리케이션은 UI를 구현할 때 QWindow를 직접 사용하기보다는 QWidget 또는 QQuickView 를 사용합니다. 하지만 종속성을 최소화하거나 OpenGL을 직접 사용하고자 할 때는 QBackingStore 또는 QOpenGLContext 를 통해 QWindow에 직접 렌더링할 수도 있습니다. ‘래스터 윈도우 예제’와 ‘OpenGL 윈도우 예제’는 두 가지 접근 방식 중 하나를 사용하여 QWindow에 렌더링하는 방법을 보여주는 유용한 참고 예제입니다.
리소스 관리
창은 잠재적으로 많은 메모리를 사용할 수 있습니다. 일반적인 측정 기준은 너비 × 높이 × 색상 심도입니다. 또한 창에는 더블 및 트리플 버퍼링을 지원하기 위한 여러 버퍼와 깊이 버퍼, 스텐실 버퍼가 포함될 수 있습니다. 창의 메모리 리소스를 해제하려면 ` destroy()` 함수를 호출하십시오.
콘텐츠 방향
QWindow에는 화면과 관련하여 창 내용의 레이아웃을 지정하는 데 사용할 수 있는 reportContentOrientationChange() 함수가 있습니다. 콘텐츠 방향은 단순히 창 시스템에 창 내용이 어떤 방향으로 배치되어 있는지에 대한 힌트일 뿐입니다. 이는 창 크기는 그대로 유지하면서 내용만 회전시키고자 할 때, 특히 서로 다른 방향 간에 회전 애니메이션을 수행할 때 유용합니다. 윈도우 시스템은 이 값을 사용하여 시스템 팝업이나 대화 상자의 레이아웃을 결정할 수 있습니다.
가시성 및 윈도우 시스템 노출
기본적으로 창은 보이지 않으며, 창을 표시하려면 ` setVisible(true)` 또는 ` show()` 등의 함수를 호출해야 합니다. 창을 다시 숨기려면 ` setVisible(false)` 또는 ` hide()`를 호출하십시오. `visible` 속성은 애플리케이션이 창이 어떤 상태에 있기를 원하는지를 나타냅니다. 기본 시스템에 따라, 표시 가능한 상태인 창이 화면에 나타나지 않을 수도 있습니다. 예를 들어, 다른 불투명한 창에 가려지거나 화면의 물리적 영역 밖으로 이동되었을 수 있습니다. 노출 알림 기능이 있는 윈도우 시스템에서는 isExposed() 액세서리가 해당 창을 화면에서 직접 볼 수 있는 것으로 취급해야 하는지 여부를 나타냅니다. exposeEvent() 함수는, 예를 들어 윈도우 시스템의 노출 상태가 변경되는 등의 이유로 창의 일부 영역이 무효화될 때마다 호출됩니다. 이 정보를 애플리케이션에 공개하지 않는 윈도우 시스템에서는, isExposed()는 단순히 isVisible()와 동일한 값을 반환합니다.
QWindow::Visibility visibility()을 통해 조회되는 값은 visible()과 ()의 기능을 결합한 편의 API입니다. windowStates
렌더링
창에 콘텐츠를 렌더링하는 데 사용할 수 있는 Qt API는 두 가지가 있습니다. 하나는 QPainter 를 사용하여 렌더링하고 type QSurface::RasterSurface 인 창에 내용을 플러시하는 QBackingStore 이고, 다른 하나는 OpenGL을 사용하여 type QSurface::OpenGLSurface 인 창에 렌더링하는 QOpenGLContext 입니다.
isExposed()가 true 을 반환하는 즉시 애플리케이션은 렌더링을 시작할 수 있으며, isExposed()가 false 을 반환할 때까지 렌더링을 계속할 수 있습니다. isExposed()가 변경되는 시점을 파악하려면 exposeEvent()를 재구현하십시오. 창은 항상 첫 번째 노출 이벤트(expose event)가 발생하기 전에 크기 조정 이벤트(resize event)를 받게 됩니다.
초기 기하 구조
창의 너비와 높이가 초기화되지 않은 경우, 창은 플랫폼 창으로부터 적절한 기본 기하 정보를 얻게 됩니다. 위치가 초기화되지 않은 경우, 플랫폼 창은 윈도우 시스템이 창의 위치를 결정하도록 허용합니다. 예를 들어 X11에서, 창 관리자는 일반적으로 새 창이 기존 창을 완전히 가리는 것을 방지하기 위해 일종의 지능형 배치 기능을 수행합니다. 그러나 ` setGeometry()`는 위치와 크기를 모두 초기화하므로, 크기는 고정하되 위치는 자동으로 결정되도록 하려면 대신 ` resize()` 또는 ` setWidth()`과 ` setHeight()`를 호출해야 합니다.
멤버 유형 설명서
enum QWindow::AncestorMode
이 열거형은 일시적인 부모를 조상으로 간주할지 여부를 제어하는 데 사용됩니다.
| 상수 | 값 | 설명 |
|---|---|---|
QWindow::ExcludeTransients | 0 | 일시적인 부모는 조상으로 간주되지 않습니다. |
QWindow::IncludeTransients | 1 | 일시적인 부모를 조상으로 간주합니다. |
enum QWindow::Visibility
이 열거형은 창이 화면의 어느 부분을 차지하거나 차지해야 하는지를 나타냅니다.
| 상수 | 값 | 설명 |
|---|---|---|
QWindow::Windowed | 2 | 창이 화면의 일부를 차지하지만, 반드시 전체 화면을 차지하는 것은 아닙니다. 이 상태는 여러 창을 동시에 표시하는 것을 지원하는 윈도우 시스템에서만 발생합니다. 이 상태에서 WindowFlags가 허용하고 윈도우 시스템이 지원하는 경우, 사용자는 창을 수동으로 이동하거나 크기를 조정할 수 있습니다. |
QWindow::Minimized | 3 | 창 시스템이 최소화된 창을 처리하는 방식에 따라, 창이 작업 표시줄, 도크, 작업 목록 또는 바탕 화면의 항목이나 아이콘으로 축소됩니다. |
QWindow::Maximized | 4 | 창이 화면 전체를 차지하며, 제목 표시줄은 여전히 표시됩니다. 대부분의 윈도우 시스템에서 이는 툴바의 최대화 버튼을 클릭하여 달성되는 상태입니다. |
QWindow::FullScreen | 5 | 창이 화면 전체를 차지하며, 크기 조정이 불가능하고 제목 표시줄이 없습니다. 여러 개의 창을 동시에 표시하는 기능을 지원하지 않는 일부 플랫폼에서는, 창이 숨겨져 있지 않을 때 이 상태가 일반적인 표시 상태일 수 있습니다. |
QWindow::AutomaticVisibility | 1 | 이는 창에 기본 표시 상태를 부여하는 것을 의미하며, 플랫폼에 따라 전체 화면 또는 창 모드가 될 수 있습니다. 이 값은 ` setVisibility `의 매개변수로 지정할 수 있지만, 가시성 액세서리에서는 절대 읽어올 수 없습니다. |
QWindow::Hidden | 0 | 창은 어떤 방식으로도 표시되지 않지만, AutomaticVisibility를 설정하여 복원할 수 있는 잠재적 가시성을 기억하고 있을 수 있습니다. |
속성 설명서
[read-only] active : bool
이 속성은 창의 활성 상태를 나타냅니다.
액세스 함수:
| bool | isActive() const |
알림 신호:
| void | activeChanged() |
requestActivate()도 참조하십시오 .
contentOrientation : Qt::ScreenOrientation
이 속성은 창 내용의 방향을 저장합니다.
이는 창 관리자가 해당 창과 관련하여 팝업, 대화 상자, 상태 표시줄 또는 이와 유사한 추가 콘텐츠를 표시해야 할 경우를 대비한 참고 정보입니다.
권장되는 방향은 QScreen::orientation()이지만, 애플리케이션이 가능한 모든 방향을 지원할 필요는 없으므로 현재 화면 방향을 무시하도록 선택할 수도 있습니다.
창의 방향과 콘텐츠 방향의 차이에 따라 콘텐츠를 회전할 각도가 결정됩니다. QScreen::angleBetween(), QScreen::transformBetween() 및 QScreen::mapBetween()을 사용하여 필요한 변환을 계산할 수 있습니다.
액세스 함수:
| Qt::ScreenOrientation | contentOrientation() const |
| void | reportContentOrientationChange(Qt::ScreenOrientation orientation) |
알림 신호:
| void | contentOrientationChanged(Qt::ScreenOrientation orientation) |
flags : Qt::WindowFlags
이 속성은 창의 창 플래그를 저장합니다.
창 플래그는 윈도우 시스템 내에서 창의 외관을 제어하며, 대화 상자, 팝업, 일반 창 중 어떤 유형인지, 제목 표시줄이 있어야 하는지 등을 결정합니다.
요청된 플래그를 적용할 수 없는 경우, 실제 창 플래그는 setFlags()로 설정된 플래그와 다를 수 있습니다.
액세스 함수:
| Qt::WindowFlags | flags() const |
| void | setFlags(Qt::WindowFlags flags) |
Notifier 신호:
| void | flagsChanged(Qt::WindowFlags flags) |
setFlag()도 참조하십시오 .
height : int
이 속성은 창의 지오메트리 높이를 저장합니다.
액세스 함수:
| int | height() const |
| void | setHeight(int arg) |
알림 신호:
| void | heightChanged(int arg) |
maximumHeight : int
이 속성은 창의 지오메트리의 최대 높이를 저장합니다.
액세스 함수:
| int | maximumHeight() const |
| void | setMaximumHeight(int h) |
알림 신호:
| void | maximumHeightChanged(int arg) |
maximumWidth : int
이 속성은 창의 지오메트리의 최대 너비를 저장합니다.
액세스 함수:
| int | maximumWidth() const |
| void | setMaximumWidth(int w) |
알림 신호:
| void | maximumWidthChanged(int arg) |
minimumHeight : int
이 속성은 창의 지오메트리의 최소 높이를 저장합니다.
액세스 함수:
| int | minimumHeight() const |
| void | setMinimumHeight(int h) |
알림 신호:
| void | minimumHeightChanged(int arg) |
minimumWidth : int
이 속성은 창의 지오메트리의 최소 너비를 저장합니다.
액세스 함수:
| int | minimumWidth() const |
| void | setMinimumWidth(int w) |
알림 신호:
| void | minimumWidthChanged(int arg) |
modality : Qt::WindowModality
이 속성은 창의 모달성을 나타냅니다.
모달 창은 다른 창이 입력 이벤트를 수신하지 못하도록 차단합니다. Qt는 두 가지 유형의 모달리티를 지원합니다: Qt::WindowModal 및 Qt::ApplicationModal.
기본적으로 이 속성의 값은 Qt::NonModal
액세스 함수:
| Qt::WindowModality | modality() const |
| void | setModality(Qt::WindowModality modality) |
알림 신호:
| void | modalityChanged(Qt::WindowModality modality) |
참조: Qt::WindowModality.
opacity : qreal
이 속성은 창 관리 시스템에서 창의 불투명도를 저장합니다.
윈도우 시스템이 창 불투명도를 지원하는 경우, 이 속성을 사용하여 창을 서서히 나타나게 하거나 사라지게 하거나, 반투명하게 만들 수 있습니다.
값이 1.0 이상이면 완전히 불투명하게 처리되고, 0.0 이하이면 완전히 투명하게 처리됩니다. 그 사이의 값은 이 두 극단 사이의 다양한 반투명도를 나타냅니다.
기본값은 1.0입니다.
액세스 함수:
| qreal | opacity() const |
| void | setOpacity(qreal level) |
알림 신호:
| void | opacityChanged(qreal opacity) |
title : QString
이 속성은 윈도우 시스템에서 창의 제목을 저장합니다.
창 제목은 창 시스템 및 창 플래그에 따라 창 장식 요소의 제목 영역에 표시될 수 있습니다. 또한 창 시스템에서 작업 전환기 등과 같은 다른 상황에서 창을 식별하는 데 사용될 수도 있습니다.
액세스 함수:
| QString | title() const |
| void | setTitle(const QString &) |
알림 신호:
| void | windowTitleChanged(const QString &title) |
flags()도 참조하십시오 .
transientParent : QWindow*
이 속성은 이 창이 일시적인 팝업인 대상 창을 저장합니다.
이는 이 창이 일시적인 부모 창을 대신하는 대화 상자나 팝업 창임을 창 관리자에게 알리는 단서입니다.
창이 기본적으로 일시적인 부모 창( parent )의 중앙에 위치하도록 하려면, 창 관리자에 따라 적절한 Qt::WindowType (예: Qt::Dialog)을 사용하여 setFlags()를 호출해야 할 수도 있습니다.
액세스 함수:
| QWindow * | transientParent() const |
| void | setTransientParent(QWindow *parent) |
알림 신호:
| void | transientParentChanged(QWindow *transientParent) |
parent()도 참조하십시오 .
visibility : Visibility
이 속성은 창의 화면 점유 상태를 나타냅니다.
Visibility는 창이 윈도우 시스템에서 일반, 최소화, 최대화, 전체 화면 또는 숨김 상태로 표시되어야 하는지를 나타냅니다.
가시성(visibility)을 ' AutomaticVisibility '로 설정한다는 것은 창에 기본 가시 상태를 부여하는 것을 의미하며, 이는 플랫폼에 따라 전체 화면 또는 창 모드가 될 수 있습니다. 가시성 속성을 읽을 때는 항상 실제 상태가 반환되며, ' AutomaticVisibility' 상태는 절대 반환되지 않습니다.
기본값은 Hidden입니다.
액세스 함수:
| QWindow::Visibility | visibility() const |
| void | setVisibility(QWindow::Visibility v) |
Notifier 시그널:
| void | visibilityChanged(QWindow::Visibility visibility) |
visible : bool
이 속성은 창이 표시되어 있는지 여부를 나타냅니다.
이 속성은 윈도우 시스템에서 창의 표시 여부를 제어합니다.
기본적으로 창은 보이지 않으며, 창을 보이게 하려면 setVisible(true) 또는 show() 등의 메서드를 호출해야 합니다.
참고: 창을숨긴다고 해서 윈도우 시스템에서 창이 제거되는 것은 아니며, 단지 창이 보이지 않게 될 뿐입니다. 전체 화면 애플리케이션에 전용 데스크탑을 제공하는 윈도우 시스템(예: macOS)에서는, 전체 화면 창을 숨겨도 해당 데스크탑이 제거되지는 않고 비어 있는 상태로 남습니다. 동일한 애플리케이션의 다른 창이 전체 화면으로 표시되면, 그 창이 해당 데스크탑을 채우게 됩니다. QWindow::close 를 사용하여 윈도우 시스템에서 창을 완전히 제거하십시오.
액세스 함수:
| bool | isVisible() const |
| void | setVisible(bool visible) |
Notifier 신호:
| void | visibleChanged(bool arg) |
show()도 참조하십시오 .
width : int
이 속성은 창의 지오메트리 너비를 저장합니다
액세스 함수:
| int | width() const |
| void | setWidth(int arg) |
알림 신호:
| void | widthChanged(int arg) |
x : int
이 속성은 창의 지오메트리의 x 좌표를 나타냅니다.
액세스 함수:
| int | x() const |
| void | setX(int arg) |
알림 신호:
| void | xChanged(int arg) |
y : int
이 속성은 창의 지오메트리의 y 좌표를 나타냅니다.
액세스 함수:
| int | y() const |
| void | setY(int arg) |
알림 신호:
| void | yChanged(int arg) |
멤버 함수 문서
[explicit] QWindow::QWindow(QScreen *targetScreen = nullptr)
targetScreen 에서 최상위 창을 생성합니다.
setVisible(true), show() 또는 이와 유사한 함수가 호출될 때까지 창은 표시되지 않습니다.
setScreen()도 참조하십시오 .
[explicit] QWindow::QWindow(QWindow *parent)
지정된 ` parent ` 창의 자식 창으로 창을 생성합니다.
이 창은 부모 창 내에 삽입되며, 좌표는 부모 창을 기준으로 합니다.
화면은 부모 창에서 상속됩니다.
setParent()도 참조하십시오 .
[virtual noexcept] QWindow::~QWindow()
창을 닫습니다.
[slot] void QWindow::alert(int msec)
msec 밀리초 동안 경고 메시지를 표시합니다. msec 가 0 (기본값)인 경우, 창이 다시 활성화될 때까지 경고 메시지가 무기한으로 표시됩니다. 이 함수는 활성 창에는 영향을 미치지 않습니다.
경고 상태에서는 창이 깜빡이거나 작업 표시줄 항목이 튀어 오르는 등의 방식으로 사용자의 주의를 필요로 함을 나타냅니다.
QSize QWindow::baseSize() const
창의 기본 크기를 반환합니다.
setBaseSize()도 참조하십시오 .
[slot] bool QWindow::close()
창을 닫습니다.
이 함수는 창을 닫으며, 사실상 ` destroy()`를 호출하고, 경우에 따라 응용 프로그램을 종료할 수도 있습니다. 성공 시 ` true `를 반환하고, 상위 창이 있는 경우 `false`를 반환합니다(이 경우 최상위 창을 닫아야 합니다).
destroy(), QGuiApplication::quitOnLastWindowClosed() 및 closeEvent()도 참조하십시오 .
[virtual protected] void QWindow::closeEvent(QCloseEvent *ev)
닫기 이벤트(ev)를 처리하려면 이 메서드를 재정의하십시오.
이 함수는 창을 닫으라는 요청이 들어왔을 때 호출됩니다. 창이 닫히는 것을 방지하려면 이벤트 발생 시 QEvent::ignore()를 호출하십시오.
close()도 참조하십시오 .
void QWindow::create()
창과 관련된 플랫폼 리소스를 할당합니다.
이 시점에서 setFormat()을 사용하여 설정된 서피스 형식이 실제 네이티브 서피스로 변환됩니다. 그러나 setVisible()이 호출될 때까지는 창이 숨겨진 상태로 유지됩니다.
이 함수는 show(), setVisible(), winId() 및 플랫폼 리소스에 대한 액세스가 필요한 기타 함수에 의해 암시적으로 호출되므로, 일반적으로 이 함수를 직접 호출할 필요는 없습니다.
필요한 경우 destroy()을 호출하여 플랫폼 리소스를 해제하십시오.
destroy()도 참조하십시오 .
QCursor QWindow::cursor() const
이 창의 커서 모양
setCursor() 및 unsetCursor()도 참조하십시오 .
void QWindow::destroy()
이 창과 관련된 네이티브 플랫폼 리소스를 해제합니다.
create()도 참조하십시오 .
qreal QWindow::devicePixelRatio() const
창에 대한 물리적 픽셀과 장치 독립 픽셀 간의 비율을 반환합니다. 이 값은 창이 표시된 화면에 따라 달라지며, 창을 이동하면 변경될 수 있습니다.
QWindow 인스턴스는 장치 픽셀 비율이 변경될 때 QEvent::DevicePixelRatioChange 유형의 이벤트를 수신합니다.
일반 디스플레이에서는 1.0, Apple "레티나" 디스플레이에서는 2.0이 일반적인 값입니다.
QScreen::devicePixelRatio() 및 QEvent::DevicePixelRatioChange도 참조하십시오 .
[override virtual protected] bool QWindow::event(QEvent *ev)
QObject::event(QEvent *e)를 재구현합니다.
창으로 전송된 모든 이벤트(ev)를 처리하려면 이 메서드를 재정의하십시오. 이벤트를 인식하고 처리한 경우 true 를 반환하십시오.
마우스 이벤트, 키 이벤트, 크기 조정 이벤트 등이 평소와 같이 전달되기를 원한다면, 반드시 기본 클래스 버전을 호출해야 합니다.
[virtual protected] void QWindow::exposeEvent(QExposeEvent *ev)
expose 이벤트(ev)는 창이 노출되지 않은 상태와 노출된 상태 사이를 전환할 때 윈도우 시스템에 의해 전송됩니다.
노출된 창은 사용자에게 표시될 가능성이 있습니다. 창이 화면 밖으로 이동하거나, 다른 창에 의해 완전히 가려지거나, 최소화되는 등의 상황이 발생하면 이 함수가 호출될 수 있으며, isExposed()의 반환값이 false로 변경될 수 있습니다. 이 이벤트를 사용하여 애니메이션과 같은 리소스 소모가 큰 작업이 창이 노출된 상태에서만 실행되도록 제한할 수 있습니다.
이 이벤트는 그리기(painting)에 사용해서는 안 됩니다. 그리기를 처리하려면 대신 ` paintEvent()`을 구현하십시오.
창이 처음 표시될 때, 노출 이벤트보다 먼저 항상 크기 조정 이벤트가 전송됩니다.
paintEvent() 및 isExposed()도 참조하십시오 .
QString QWindow::filePath() const
이 창이 나타내는 파일 이름입니다.
setFilePath()도 참조하십시오 .
[virtual protected] void QWindow::focusInEvent(QFocusEvent *ev)
이 메서드를 재정의하여 이벤트에서 포커스를 처리할 수 있습니다 (ev).
이벤트 내 포커스는 창이 키보드 포커스를 받을 때 전송됩니다.
focusOutEvent()도 참조하십시오 .
[virtual] QObject *QWindow::focusObject() const
키 이벤트와 같이 포커스가 바인딩된 이벤트의 최종 수신자가 될 ` QObject `를 반환합니다.
[signal] void QWindow::focusObjectChanged(QObject *object)
이 신호는 포커스와 연결된 이벤트의 최종 수신자가 ` object`로 변경될 때 발생합니다.
focusObject()도 참조하십시오 .
[virtual protected] void QWindow::focusOutEvent(QFocusEvent *ev)
포커스 이탈 이벤트(ev)를 처리하려면 이 메서드를 재정의하십시오.
포커스 아웃 이벤트는 창이 키보드 포커스를 잃을 때 발생합니다.
focusInEvent()도 참조하십시오 .
[override virtual] QSurfaceFormat QWindow::format() const
QSurface::format() const를 재구현합니다.
이 창의 실제 형식을 반환합니다.
창이 생성된 후, 이 함수는 창의 실제 서피스 형식을 반환합니다. 플랫폼에서 요청된 형식을 충족할 수 없는 경우, 반환된 형식은 요청된 형식과 다를 수 있습니다. 또한 반환된 형식이 요청된 형식의 상위 집합일 수도 있습니다. 예를 들어, 특정 버퍼 크기가 요청된 크기보다 클 수 있습니다.
참고: 플랫폼에따라 이 표면 형식의 특정 값에는 요청된 값, 즉 setFormat()에 전달된 값이 여전히 포함될 수 있습니다. 대표적인 예로는 OpenGL 버전, 프로필 및 옵션이 있습니다. 이러한 값들은 컨텍스트에 따라 다르며, 하나의 창이 수명 주기 동안 여러 컨텍스트와 함께 사용될 수 있으므로 create() 실행 중에 업데이트되지 않을 수 있습니다. 이러한 값을 조회하려면 대신 QOpenGLContext 의 format()을 사용하십시오.
setFormat(), create(), requestedFormat() 및 QOpenGLContext::format()도 참조하십시오 .
QRect QWindow::frameGeometry() const
창의 프레임까지 포함한 창의 지오메트리를 반환합니다.
이 지오메트리는 해당 화면의 virtualGeometry()를 기준으로 합니다.
geometry() 및 frameMargins()도 참조하십시오 .
QMargins QWindow::frameMargins() const
창을 둘러싼 창 테두리의 여백을 반환합니다.
geometry() 및 frameGeometry()도 참조하십시오 .
QPoint QWindow::framePosition() const
창의 왼쪽 상단 위치를 창 테두리를 포함하여 반환합니다.
이 함수는 frameGeometry()의 topLeft()와 동일한 값을 반환합니다.
setFramePosition(), geometry(), frameGeometry()도 참조하십시오 .
[static] QWindow *QWindow::fromWinId(WId id)
다른 프로세스에서 생성되었거나 Qt 하위의 네이티브 라이브러리를 사용하여 생성된 창의 로컬 표현을 생성합니다.
네이티브 창에 대한 핸들 id 이 주어지면, 이 메서드는 QWindow 객체를 생성하며, 이 객체는 setParent() 및 setTransientParent()과 같은 메서드를 호출할 때 해당 창을 나타내는 데 사용할 수 있습니다.
이를 통해, 이를 지원하는 플랫폼에서는 QWindow 를 네이티브 창 내에 삽입하거나, 네이티브 창을 QWindow 내에 삽입할 수 있습니다.
플랫폼 플러그인에서 외부 창이 지원되지 않거나 네이티브 창 임베딩에 실패한 경우, 이 함수는 nullptr 을 반환합니다.
참고: 반환된 QWindow 는 (부모 창 변경을 제외하고) 기본 네이티브 창을 조작하거나 네이티브 창의 상태 변화를 관찰하는 데 사용되어서는 안 됩니다. 이러한 종류의 작업에 대한 지원은 부수적이며, 플랫폼에 크게 좌우되고 테스트되지 않았습니다.
setParent()도 참조하십시오 .
QRect QWindow::geometry() const
창의 테두리를 제외한 창 지오메트리를 반환합니다.
이 지오메트리는 해당 화면의 virtualGeometry()를 기준으로 합니다.
setGeometry(), frameMargins() 및 frameGeometry()도 참조하십시오 .
[slot] void QWindow::hide()
창을 숨깁니다.
setVisible(false)를 호출하는 것과 동일합니다.
show() 및 setVisible()도 참조하십시오 .
[virtual protected] void QWindow::hideEvent(QHideEvent *ev)
숨기기 이벤트(ev)를 처리하려면 이 함수를 재정의하십시오.
이 함수는 창 시스템에서 창을 숨기도록 요청했을 때 호출됩니다.
QIcon QWindow::icon() const
윈도우 시스템에서 해당 창의 아이콘을 반환합니다.
setIcon()도 참조하십시오 .
bool QWindow::isActive() const
창이 활성 상태인 경우 ` true `를 반환합니다.
이는 입력 포커스를 가진 창뿐만 아니라, 포커스 창과 동일한 부모/일시적 부모 체인에 속한 창들에도 해당됩니다.
일반적으로 활성 창은 스타일 측면에서 활성 상태로 표시되어야 합니다.
현재 포커스를 가지고 있는 창을 얻으려면 QGuiApplication::focusWindow()를 사용하십시오.
참고: active 속성에 대한게터 함수입니다.
requestActivate()도 참조하십시오 .
bool QWindow::isAncestorOf(const QWindow *child, QWindow::AncestorMode mode = IncludeTransients) const
창이 주어진 ` child`의 조상인 경우 ` true `를 반환합니다. ` mode `가 ` IncludeTransients`인 경우, 일시적인 부모도 조상으로 간주됩니다.
bool QWindow::isExposed() const
이 창이 윈도우 시스템에 노출되어 있는지 여부를 반환합니다.
창이 노출되지 않은 상태에서는 애플리케이션에 의해 표시되지만, 여전히 윈도우 시스템에는 표시되지 않으므로, 애플리케이션은 애니메이션 및 기타 그래픽 활동을 최소화해야 합니다.
이 값이 변경될 때마다 exposeEvent() 신호가 전송됩니다.
exposeEvent()도 참조하십시오 .
bool QWindow::isModal() const
해당 창이 모달 창인지 여부를 반환합니다.
모달 창은 다른 창에서 입력을 받을 수 없도록 차단합니다.
QWindow::modality도 참조하십시오 .
bool QWindow::isTopLevel() const
창이 최상위 창인지, 즉 상위 창이 없는지 여부를 반환합니다.
[virtual protected] void QWindow::keyPressEvent(QKeyEvent *ev)
키 입력 이벤트를 처리하려면 이 메서드를 재정의하세요 (ev).
keyReleaseEvent()도 참조하십시오 .
[virtual protected] void QWindow::keyReleaseEvent(QKeyEvent *ev)
키 해제 이벤트를 처리하려면 이 메서드를 재정의하십시오 (ev).
keyPressEvent()도 참조하십시오 .
[slot] void QWindow::lower()
창 관리 시스템에서 해당 창을 아래로 내립니다.
해당 창을 다른 창들 아래에 표시되도록 아래로 내릴 것을 요청합니다.
[since 6.0] QPointF QWindow::mapFromGlobal(const QPointF &pos) const
전역 화면 좌표 pos 를 창 좌표로 변환합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
mapToGlobal()도 참조하십시오 .
QPoint QWindow::mapFromGlobal(const QPoint &pos) const
이것은 오버로드된 함수입니다.
[since 6.0] QPointF QWindow::mapToGlobal(const QPointF &pos) const
창 좌표 pos 를 전체 화면 좌표로 변환합니다. 예를 들어, ` mapToGlobal(QPointF(0,0)) `는 창의 왼쪽 상단 픽셀의 전체 화면 좌표를 반환합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
mapFromGlobal()도 참조하십시오 .
QPoint QWindow::mapToGlobal(const QPoint &pos) const
이것은 오버로드된 함수입니다.
QRegion QWindow::mask() const
창에 설정된 마스크를 반환합니다.
마스크는 애플리케이션이 지정된 영역 밖에서 마우스나 터치 입력을 수신하지 않으려는 의도를 윈도우 시스템에 알리는 신호입니다.
setMask()도 참조하십시오 .
QSize QWindow::maximumSize() const
창의 최대 크기를 반환합니다.
setMaximumSize()도 참조하십시오 .
QSize QWindow::minimumSize() const
창의 최소 크기를 반환합니다.
setMinimumSize()도 참조하십시오 .
[signal] void QWindow::modalityChanged(Qt::WindowModality modality)
이 신호는 Qwindow::modality 속성이 ` modality`로 변경될 때 발생합니다.
참고: 속성 ` modality`에 대한알림 신호입니다.
[virtual protected] void QWindow::mouseDoubleClickEvent(QMouseEvent *ev)
마우스 더블 클릭 이벤트를 처리하려면 이 메서드를 재정의하십시오 (ev).
mousePressEvent() 및 QStyleHints::mouseDoubleClickInterval()도 참조하십시오 .
[virtual protected] void QWindow::mouseMoveEvent(QMouseEvent *ev)
마우스 이동 이벤트를 처리하려면 이 메서드를 재정의하십시오 (ev).
[virtual protected] void QWindow::mousePressEvent(QMouseEvent *ev)
마우스 클릭 이벤트를 처리하려면 이 메서드를 재정의하세요 (ev).
mouseReleaseEvent()도 참조하십시오 .
[virtual protected] void QWindow::mouseReleaseEvent(QMouseEvent *ev)
마우스 릴리스 이벤트를 처리하려면 이 메서드를 재정의하십시오 (ev).
mousePressEvent()도 참조하십시오 .
[virtual protected] void QWindow::moveEvent(QMoveEvent *ev)
창 이동 이벤트를 처리하려면 이 메서드를 재정의하세요 (ev).
[virtual protected] bool QWindow::nativeEvent(const QByteArray &eventType, void *message, qintptr *result)
플랫폼에 따라 달라지는 이벤트를 처리하려면 이 메서드를 재정의하십시오. 이 메서드에는 ` eventType`, ` message ` 및 ` result`가 전달됩니다.
이렇게 하면 애플리케이션의 이식성이 떨어질 수 있습니다.
이벤트가 처리된 경우에만 true를 반환해야 합니다.
[virtual protected, since 6.0] void QWindow::paintEvent(QPaintEvent *ev)
페인트 이벤트(ev)는 창 시스템이 창의 특정 영역을 다시 그려야 할 때마다 전송됩니다. 예를 들어, 창이 처음 표시될 때나 다른 창을 이동하여 창의 일부가 다시 노출되었을 때 등이 해당됩니다.
응용 프로그램은 창의 노출 상태와 관계없이 페인트 이벤트에 반응하여 창에 렌더링을 수행해야 합니다. 예를 들어, 사용자에게 표시할 준비를 하기 위해 창이 노출되기 전에 페인트 이벤트가 전송될 수 있습니다.
이 함수는 Qt 6.0에서 도입되었습니다.
exposeEvent()도 참조하십시오 .
QWindow *QWindow::parent(QWindow::AncestorMode mode = ExcludeTransients) const
부모 창이 있는 경우 해당 창을 반환합니다.
mode 가 IncludeTransients 인 경우, 부모 창이 없으면 일시적인 부모 창이 반환됩니다.
부모가 없는 창은 최상위 창이라고 합니다.
setParent()도 참조하십시오 .
QPoint QWindow::position() const
창 테두리를 제외한 데스크톱 상의 창 위치를 반환합니다.
참고: 모든 윈도우 시스템이 최상위 창의 위치 설정이나 조회를 지원하는것은 아닙니다 . 이러한 시스템에서는 프로그래밍 방식으로 창을 이동해도 아무런 효과가 없을 수 있으며, 현재 위치에 대해 QPoint(0, 0) 와 같은 비정상적인 값이 반환될 수 있습니다.
setPosition()도 참조하십시오 .
[slot] void QWindow::raise()
창 관리 시스템에서 해당 창을 위로 올립니다.
해당 창을 다른 창들 위에 보이도록 위로 올릴 것을 요청합니다.
[slot] void QWindow::requestActivate()
창을 활성화, 즉 키보드 포커스를 받도록 요청합니다.
isActive() 및 QGuiApplication::focusWindow()도 참조하십시오 .
[slot] void QWindow::requestUpdate()
이 창으로 ‘ QEvent::UpdateRequest ’ 이벤트를 전달하도록 예약합니다.
이 기능이 지원되는 플랫폼에서는 이벤트가 디스플레이의 수직 동기화(vsync)와 동기화되어 전달됩니다. 그렇지 않은 경우, 이벤트는 최대 5 ms의 지연 후 전달됩니다. 창과 연결된 화면이 60 Hz보다 높은 refresh rate 를 보고하는 경우, 이 간격은 5보다 작은 값으로 축소됩니다. 이 추가 시간은 이벤트 루프가 시스템 이벤트를 수집할 수 있는 약간의 유휴 시간을 확보하기 위한 것이며, QT_QPA_UPDATE_IDLE_TIME 환경 변수를 사용하여 재정의할 수 있습니다.
애니메이션을 구동할 때는, 이 함수는 렌더링이 완료된 후 한 번만 호출되어야 합니다. 이 함수를 여러 번 호출하면 단일 이벤트가 창으로 전달됩니다.
QWindow 의 서브클래스는 event()를 재구현하여 이벤트를 가로채고 애플리케이션의 렌더링 코드를 호출한 다음, 기본 클래스의 구현을 호출해야 합니다.
참고: 하위 클래스에서 event()을재구현할 때는 , 해당 이벤트를 기본 클래스에서 처리할 필요가 없다는 것이 확실하지 않은 한, 반드시 기본 클래스의 구현을 호출해야 합니다. 예를 들어, 이 함수의 기본 구현은 QEvent::Timer 이벤트에 의존합니다. 따라서 이러한 이벤트를 걸러내면 업데이트 이벤트 전달이 중단될 수 있습니다.
QSurfaceFormat QWindow::requestedFormat() const
이 창의 요청된 표면 형식을 반환합니다.
요청된 형식이 플랫폼 구현에서 지원되지 않는 경우, requestedFormat은 실제 창 형식과 다를 수 있습니다.
이 값은 setFormat()를 통해 설정된 값입니다.
setFormat() 및 format()도 참조하십시오 .
void QWindow::resize(const QSize &newSize)
창틀을 제외한 창의 크기를 다음과 같이 설정합니다. newSize
void QWindow::resize(int w, int h)
QSize 창 테두리를 제외한 창 크기를, 너비 w 와 높이 h
창의 크기를 대화형으로 조정하려면 startSystemResize()을 참조하십시오.
[virtual protected] void QWindow::resizeEvent(QResizeEvent *ev)
크기 조정 이벤트(ev)를 처리하려면 이 메서드를 재정의하십시오.
크기 조정 이벤트는 윈도우 시스템에서 창 크기가 조정될 때마다 호출됩니다. 이는 윈도우 시스템이 setGeometry() 또는 resize() 요청을 직접 처리할 때, 혹은 사용자가 수동으로 창 크기를 조정할 때 간접적으로 발생합니다.
[since 6.9] QMargins QWindow::safeAreaMargins() const
창의 안전 영역 여백을 반환합니다.
안전 영역은 시스템 UI와 같은 다른 UI 요소에 의해 가려지거나 충돌할 위험 없이 콘텐츠를 안전하게 배치할 수 있는 창의 일부를 나타냅니다.
여백은 창의 내부 기하학적 구조에 상대적입니다. 즉, QRect(0, 0, width(), height())입니다.
void PaintDeviceWindow::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QRect rect(0, 0, width(), height());
painter.fillRect(rect, QGradient::SunnyMorning);
painter.fillRect(rect - safeAreaMargins(), QGradient::DustyGrass);
}이 함수는 Qt 6.9에서 도입되었습니다.
geometry() 및 safeAreaMarginsChanged()도 참조하십시오 .
[signal, since 6.9] void QWindow::safeAreaMarginsChanged(QMargins margins)
이 신호는 안전 영역의 여백이 margins 로 변경되었을 때 발생합니다.
이 함수는 Qt 6.9에서 도입되었습니다.
safeAreaMargins()도 참조하십시오 .
QScreen *QWindow::screen() const
창이 표시된 화면을 반환하며, 해당 화면이 없는 경우에는 null을 반환합니다.
자식 창의 경우, 이 함수는 해당 최상위 창의 화면을 반환합니다.
setScreen() 및 QScreen::virtualSiblings()도 참조하십시오 .
[signal] void QWindow::screenChanged(QScreen *screen)
이 신호는 창의 ` screen ` 속성이 변경될 때 발생하며, 이는 ` setScreen()`를 통해 명시적으로 설정되거나, 창의 화면이 제거될 때 자동으로 변경될 수 있습니다.
void QWindow::setBaseSize(const QSize &size)
창의 기본 size 을 설정합니다.
창에 sizeIncrement()가 정의된 경우, 기본 크기는 적절한 창 크기를 계산하는 데 사용됩니다.
setMinimumSize(), setMaximumSize(), setSizeIncrement(), baseSize()도 참조하십시오 .
void QWindow::setCursor(const QCursor &cursor)
이 창의 커서 모양 설정
오버라이드 커서가 설정되어 있지 않은 한, 마우스 cursor 는 이 창 위에 위치할 때 이 모양을 띱니다. 유용한 모양들의 범위에 대해서는 list of predefined cursor objects 를 참조하십시오.
커서가 설정되지 않았거나 unsetCursor() 함수가 호출된 후에는 상위 창의 커서가 사용됩니다.
기본적으로 커서는 Qt::ArrowCursor 모양을 가집니다.
일부 기본 창 구현에서는 마우스가 잡혀 있는 상태라도 커서가 창을 벗어나면 커서를 재설정합니다. 창 밖에서도 모든 창에 커서가 설정되도록 하려면 QGuiApplication::setOverrideCursor()을 고려해 보십시오.
cursor() 및 QGuiApplication::setOverrideCursor()도 참조하십시오 .
void QWindow::setFilePath(const QString &filePath)
이 창이 나타내는 파일의 이름을 설정합니다.
창 관리 시스템은 ` filePath `를 사용하여 이 창이 나타내는 문서의 경로를 타일 바에 표시할 수 있습니다.
filePath()도 참조하십시오 .
void QWindow::setFlag(Qt::WindowType flag, bool on = true)
on 가 true인 경우, 이 창에 flag 플래그를 설정하고, 그렇지 않은 경우 해당 플래그를 지웁니다.
setFlags(), flags(), type()도 참조하십시오 .
void QWindow::setFormat(const QSurfaceFormat &format)
창의 표면 format 을 설정합니다.
이 형식은 색상 심도, 알파, 심도 및 스텐실 버퍼 크기 등의 속성을 결정합니다. 예를 들어, 창에 투명한 배경을 적용하려면(창 시스템이 합성 기능을 지원하고, 창 내의 다른 콘텐츠로 인해 다시 불투명해지지 않는다는 전제 하에):
QSurfaceFormat format;
format.setAlphaBufferSize(8);
window.setFormat(format);표면 형식은 ` create()` 함수 내에서 결정됩니다. ` create()`가 호출된 후에 이 함수를 호출하더라도 네이티브 표면의 표면 형식이 다시 결정되지는 않습니다.
이 함수를 통해 형식이 명시적으로 설정되지 않은 경우, QSurfaceFormat::defaultFormat()가 반환하는 형식이 사용됩니다. 즉, 여러 개의 창이 있는 경우, 첫 번째 창을 생성하기 전에 이 함수를 개별적으로 호출하는 대신 QSurfaceFormat::setDefaultFormat()를 한 번만 호출하면 됩니다.
format(), create(), destroy(), QSurfaceFormat::setDefaultFormat()도 참조하십시오 .
void QWindow::setFramePosition(const QPoint &point)
창 프레임(point)을 포함하여 창의 왼쪽 상단 위치를 설정합니다.
이 위치는 해당 화면의 virtualGeometry()를 기준으로 합니다.
framePosition(), setGeometry() 및 frameGeometry()도 참조하십시오 .
[since 6.12] void QWindow::setFramePosition(int x, int y)
창(창 테두리 포함)의 왼쪽 상단 위치를 ` x`로 설정하며, y
이 위치는 해당 화면의 virtualGeometry()를 기준으로 합니다.
이 함수는 Qt 6.12에서 도입되었습니다.
setGeometry() 및 frameGeometry()도 참조하십시오 .
[slot] void QWindow::setGeometry(const QRect &rect)
창의 테두리를 제외한 창의 기하학적 구조를 ` rect`로 설정합니다.
이 지오메트리는 해당 화면의 virtualGeometry()를 기준으로 합니다.
참고: 이 슬롯은 오버로드되어 있습니다. 이 슬롯에 연결하려면:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
window, qOverload(&QWindow::setGeometry));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
window, [receiver = window](const QRect &rect) { receiver->setGeometry(rect); }); geometry()도 참조하십시오 .
[slot] void QWindow::setGeometry(int posx, int posy, int w, int h)
창의 테두리를 제외한 창의 기하학적 구조를 posx, posy, w 및 h 로 구성된 사각형으로 설정합니다.
이 기하 구조는 해당 화면의 virtualGeometry()를 기준으로 합니다.
참고: 이 슬롯은 오버로드되어 있습니다. 이 슬롯에 연결하려면:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
window, qOverload(&QWindow::setGeometry));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
window, [receiver = window](int posx, int posy, int w, int h) { receiver->setGeometry(posx, posy, w, h); }); geometry()도 참조하십시오 .
void QWindow::setIcon(const QIcon &icon)
윈도우 시스템에서 창 icon 를 설정합니다
창 아이콘은 예를 들어 창을 꾸미거나 작업 전환기에서 윈도우 시스템에 의해 사용될 수 있습니다.
참고: macOS에서는 창 제목 표시줄 아이콘은 문서를 나타내는 창을 위한 것이며, 파일 경로가 함께 설정된 경우에만 표시됩니다.
icon() 및 setFilePath()도 참조하십시오 .
bool QWindow::setKeyboardGrabEnabled(bool grab)
키보드 그랩을 활성화할지 여부를 설정합니다 (grab).
반환 값이 true인 경우, setKeyboardGrabEnabled(false)가 호출될 때까지 해당 창은 모든 키 이벤트를 수신하며, 다른 창들은 키 이벤트를 전혀 수신하지 못합니다. 마우스 이벤트는 영향을 받지 않습니다. 마우스 이벤트를 가로채려면 setMouseGrabEnabled()을 사용하십시오.
setMouseGrabEnabled()도 참조하십시오 .
void QWindow::setMask(const QRegion ®ion)
창의 마스크를 설정합니다.
마스크는 지정된 영역 region 외부의 마우스 또는 터치 입력을 애플리케이션이 수신하지 않기를 원한다는 것을 윈도우 시스템에 알리는 단서입니다.
창 관리자는 마스크에 포함되지 않은 창의 영역을 표시할지 여부를 선택할 수 있으므로, 마스크에 속하지 않는 영역을 투명하게 처리하는 것은 응용 프로그램의 책임입니다.
mask()도 참조하십시오 .
void QWindow::setMaximumSize(const QSize &size)
창의 최대 크기를 설정합니다.
이는 지정된 size 을 초과하여 창 크기가 조정되지 않도록 창 관리자에게 알리는 힌트입니다.
setMinimumSize() 및 maximumSize()도 참조하십시오 .
void QWindow::setMinimumSize(const QSize &size)
창의 최소 크기를 설정합니다.
이는 지정된 size 보다 작게 창 크기가 조정되지 않도록 창 관리자에게 알리는 힌트입니다.
setMaximumSize() 및 minimumSize()도 참조하십시오 .
bool QWindow::setMouseGrabEnabled(bool grab)
마우스 그랩을 활성화할지 여부를 설정합니다(grab).
반환 값이 true인 경우, setMouseGrabEnabled(false)가 호출될 때까지 해당 창은 모든 마우스 이벤트를 수신하며, 다른 창들은 마우스 이벤트를 전혀 수신하지 못합니다. 키보드 이벤트에는 영향을 미치지 않습니다. 키보드 이벤트를 가로채려면 setKeyboardGrabEnabled()를 사용하십시오.
setKeyboardGrabEnabled()도 참조하십시오 .
void QWindow::setParent(QWindow *parent)
parent 창을 설정합니다. 이렇게 하면 윈도우링 시스템이 해당 창의 클리핑을 관리하게 되어, 창이 parent 창에 맞춰 잘리게 됩니다.
parent 를 nullptr 로 설정하면 해당 창이 최상위 창이 됩니다.
parent 가 fromWinId() 함수로 생성된 창인 경우, 플랫폼이 이를 지원하는 한 현재 창은 parent 내에 내장됩니다.
parent()도 참조하십시오 .
void QWindow::setPosition(const QPoint &pt)
데스크톱에서 창의 위치를 다음과 같이 설정합니다. pt
이 위치는 해당 화면의 virtualGeometry()를 기준으로 합니다.
창을 대화형으로 이동하려면 startSystemMove()을 참조하십시오. 창 크기를 대화형으로 조정하려면 startSystemResize()을 참조하십시오.
참고: 모든 윈도잉 시스템이 최상위 창의 위치 설정이나 조회를 지원하는것은 아닙니다 . 이러한 시스템에서는 프로그래밍 방식으로 창을 이동해도 아무런 효과가 없을 수 있으며, 현재 위치에 대해 QPoint(0, 0) 과 같은 인위적인 값이 반환될 수 있습니다.
position() 및 startSystemMove()도 참조하십시오 .
void QWindow::setPosition(int posx, int posy)
데스크톱에서 창의 위치를 posx 로 설정하고, posy
이 위치는 해당 화면의 virtualGeometry()를 기준으로 합니다.
position()도 참조하십시오 .
void QWindow::setScreen(QScreen *newScreen)
창이 표시될 화면을 설정합니다.
창이 이미 생성된 경우, 해당 창은 newScreen 에서 다시 생성됩니다.
참고: 화면이 여러 화면으로 구성된 가상 데스크톱의 일부인경우 , 창이 자동으로 ` newScreen`로 이동하지는 않습니다. 화면에 상대적인 위치에 창을 배치하려면 화면의 `topLeft()` 위치를 사용하십시오.
이 함수는 최상위 창에서만 작동합니다.
screen() 및 QScreen::virtualSiblings()도 참조하십시오 .
void QWindow::setSizeIncrement(const QSize &size)
창의 크기 증가량(size)을 설정합니다.
사용자가 창 크기를 조정할 때, 크기는 sizeIncrement() 단위로 변경됩니다. 가로 방향으로는width() 픽셀, 세로 방향으로는 sizeIncrement().height() 픽셀씩 변경되며, 기준 크기는 baseSize()입니다.
기본적으로 이 속성은 너비와 높이가 0인 크기를 포함합니다.
윈도우 시스템이 크기 증가 단위를 지원하지 않을 수도 있습니다.
sizeIncrement(), setBaseSize(), setMinimumSize() 및 setMaximumSize()도 참조하십시오 .
void QWindow::setSurfaceType(QSurface::SurfaceType surfaceType)
창의 surfaceType 를 설정합니다.
이 창이 QBackingStore 를 사용하는 래스터 렌더링용인지, 아니면 QOpenGLContext 를 사용하는 OpenGL 렌더링용인지 지정합니다.
surfaceType 는 create() 함수에서 네이티브 서페이스가 생성될 때 사용됩니다. 네이티브 서페이스가 생성된 후에 이 함수를 호출하려면, destroy() 및 create()를 호출하여 기존 네이티브 서페이스를 해제하고 새로운 서페이스를 생성해야 합니다.
surfaceType(), QBackingStore, QOpenGLContext, create() 및 destroy()도 참조하십시오 .
void QWindow::setVulkanInstance(QVulkanInstance *instance)
이 창을 지정된 Vulkan instance 와 연결합니다.
instance 이 QWindow 인스턴스가 존재하는 동안 유효한 상태를 유지해야 합니다.
vulkanInstance()도 참조하십시오 .
void QWindow::setWindowState(Qt::WindowState state)
창의 화면 점유 상태를 설정합니다
state 창은 창 관리 시스템에서 해당 창이 최대화, 최소화, 전체 화면 또는 일반 상태로 표시되는지를 나타냅니다.
열거형 값 Qt::WindowActive 는 허용되는 매개변수가 아닙니다.
windowState(), showNormal(), showFullScreen(), showMinimized(), showMaximized() 및 setWindowStates()도 참조하십시오 .
void QWindow::setWindowStates(Qt::WindowStates state)
창의 화면 점유 상태를 설정합니다
state 창은 창 관리 시스템에서 해당 창이 최대화, 최소화 및/또는 전체 화면 상태로 표시되는지 여부를 나타냅니다.
창은 여러 상태가 혼합된 형태로 존재할 수 있습니다. 예를 들어, 창이 최소화되어 있으면서도 동시에 최대화되어 있는 경우, 창은 최소화된 상태로 표시되지만 작업 표시줄의 해당 항목을 클릭하면 최대화된 상태로 복원됩니다.
Qt::WindowActive 열거형 값은 설정해서는 안 됩니다.
windowStates(), showNormal(), showFullScreen(), showMinimized() 및 showMaximized()도 참조하십시오 .
[slot] void QWindow::show()
창을 표시합니다.
자식 창의 경우, 이는 showNormal()를 호출하는 것과 동일합니다. 그 외의 경우에는 창의 유형과 플래그에 대한 플랫폼의 기본 동작에 따라 showFullScreen(), showMaximized() 또는 showNormal()를 호출하는 것과 동일합니다.
showFullScreen(), showMaximized(), showNormal(), hide(), QStyleHints::showIsFullScreen() 및 flags()도 참조하십시오 .
[virtual protected] void QWindow::showEvent(QShowEvent *ev)
표시 이벤트(ev)를 처리하려면 이 함수를 재정의하십시오.
이 함수는 창이 표시를 요청했을 때 호출됩니다.
창 관리 시스템에 의해 창이 성공적으로 표시되면, 그 후 크기 조정 및 노출 이벤트가 발생합니다.
[slot] void QWindow::showFullScreen()
창을 전체 화면으로 표시합니다.
setWindowStates(Qt::WindowFullScreen)를 호출한 다음 setVisible(true)를 호출하는 것과 동일합니다.
플랫폼별 고려 사항 및 제한 사항에 대해서는 QWidget::showFullScreen() 문서를 참조하십시오.
setWindowStates() 및 setVisible()도 참조하십시오 .
[slot] void QWindow::showMaximized()
창을 최대화 상태로 표시합니다.
setWindowStates(Qt::WindowMaximized)를 호출한 다음 setVisible(true)를 호출하는 것과 동일합니다.
setWindowStates() 및 setVisible()도 참조하십시오 .
[slot] void QWindow::showMinimized()
창을 최소화 상태로 표시합니다.
setWindowStates(Qt::WindowMinimized)를 호출한 다음 setVisible(true)를 호출하는 것과 동일합니다.
setWindowStates() 및 setVisible()도 참조하십시오 .
[slot] void QWindow::showNormal()
창을 일반적인 상태로 표시합니다. 즉, 최대화, 최소화 또는 전체 화면 상태가 아닙니다.
setWindowStates(Qt::WindowNoState)를 호출한 후 setVisible(true)를 호출하는 것과 동일합니다.
setWindowStates() 및 setVisible()도 참조하십시오 .
[override virtual] QSize QWindow::size() const
QSurface::size() const를 재구현합니다.
창 테두리를 제외한 창의 크기를 반환합니다.
resize()도 참조하십시오 .
QSize QWindow::sizeIncrement() const
창의 크기 증가량을 반환합니다.
setSizeIncrement()도 참조하십시오 .
[slot] bool QWindow::startSystemMove()
시스템별 이동 작업 시작
이 메서드를 호출하면 이를 지원하는 플랫폼에서 창에 대한 대화형 이동 작업을 시작합니다. 실제 동작은 플랫폼에 따라 다를 수 있습니다. 일반적으로 마우스 버튼이 놓일 때까지 창이 마우스 커서를 따라갑니다.
이를 지원하는 플랫폼에서는 setPosition 보다 이 창 이동 방식이 선호됩니다. 이는 창 이동 시 더 원생적인 룩앤필을 제공할 수 있기 때문인데, 예를 들어 창 관리자가 이 창을 다른 창에 정렬하게 하거나, 화면 가장자리로 드래그할 때 애니메이션이 적용된 특수한 타일링 또는 크기 조정 동작을 수행할 수 있게 해줍니다. 또한, Wayland와 같은 일부 플랫폼에서는 setPosition 가 지원되지 않으므로, 이 방법이 애플리케이션이 창 위치를 제어할 수 있는 유일한 방법입니다.
시스템에서 해당 작업이 지원되는 경우 true를 반환합니다.
[slot] bool QWindow::startSystemResize(Qt::Edges edges)
시스템별 크기 조정 작업 시작
이 메서드를 호출하면, 이를 지원하는 플랫폼에서 창에 대한 대화형 크기 조정 작업이 시작됩니다. 실제 동작은 플랫폼에 따라 다를 수 있습니다. 일반적으로 창 가장자리가 마우스 커서를 따라가도록 창 크기가 조정됩니다.
이를 지원하는 플랫폼에서는 ` setGeometry`보다 이 창 크기 조정 방법이 선호됩니다. 이는 창 크기 조정을 더 네이티브한 모양과 느낌으로 구현할 수 있기 때문인데, 예를 들어 창 관리자가 이 창을 다른 창에 맞닿게 하거나, 화면 가장자리로 드래그할 때 애니메이션이 포함된 특별한 크기 조정 동작을 제공할 수 있습니다.
edges 는 단일 가장자리이거나 인접한 두 가장자리(모서리)여야 합니다. 그 외의 값은 허용되지 않습니다.
시스템에서 해당 작업이 지원되는 경우 true를 반환합니다.
[override virtual] QSurface::SurfaceType QWindow::surfaceType() const
QSurface::surfaceType() const를 재구현합니다.
창의 표면 유형을 반환합니다.
setSurfaceType()도 참조하십시오 .
[virtual protected] void QWindow::tabletEvent(QTabletEvent *ev)
태블릿의 누름, 이동, 떼기 이벤트를 처리하려면 이 메서드를 재정의하십시오 (ev).
근접 센서의 진입 및 이탈 이벤트는 윈도우로 전송되지 않고, 애플리케이션 인스턴스로 전달됩니다.
[virtual protected] void QWindow::touchEvent(QTouchEvent *ev)
터치 이벤트를 처리하려면 이 메서드를 재정의하십시오 (ev).
Qt::WindowType QWindow::type() const
창의 유형을 반환합니다.
이 함수는 창이 대화 상자, 툴팁, 팝업, 일반 창 등인지 여부를 나타내는 창 플래그의 일부를 반환합니다.
flags() 및 setFlags()도 참조하십시오 .
void QWindow::unsetCursor()
이 창의 화살표 커서를 기본값으로 복원합니다.
QVulkanInstance *QWindow::vulkanInstance() const
설정된 Vulkan 인스턴스가 있으면 해당 인스턴스를 반환하고, 그렇지 않으면 ` nullptr`를 반환합니다.
setVulkanInstance()도 참조하십시오 .
[virtual protected] void QWindow::wheelEvent(QWheelEvent *ev)
마우스 휠이나 기타 휠 이벤트를 처리하려면 이 메서드를 재정의하십시오 (ev).
WId QWindow::winId() const
창의 플랫폼 ID를 반환합니다.
참고: 이 함수는 플랫폼 창이 아직 생성되지 않은 경우, 플랫폼 창을 생성합니다. 플랫폼 창 생성에 실패하면 0을 반환합니다.
이 ID가 유용할 수 있는 플랫폼의 경우, 반환된 값은 해당 화면 내의 창을 고유하게 나타냅니다.
screen()함수도 참조하십시오 .
Qt::WindowState QWindow::windowState() const
창의 화면 점유 상태
setWindowState() 및 windowStates()도 참조하십시오 .
[signal] void QWindow::windowStateChanged(Qt::WindowState windowState)
이 신호는 ` windowState `가 변경될 때 발생하며, 이는 ` setWindowStates()`를 통해 명시적으로 설정되거나, 사용자가 제목 표시줄의 버튼 중 하나를 클릭하거나 기타 방법으로 인해 자동으로 변경될 때 발생합니다.
Qt::WindowStates QWindow::windowStates() const
창의 화면 점유 상태
창은 여러 상태가 조합된 형태로 존재할 수 있습니다. 예를 들어, 창이 최소화되어 있으면서도 최대화되어 있는 경우, 창은 최소화된 상태로 표시되지만 작업 표시줄의 해당 항목을 클릭하면 최대화된 상태로 복원됩니다.
setWindowStates()도 참조하십시오 .
© 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.