Window QML Type

새 최상위 창을 만듭니다. 더 보기...

Import Statement: import QtQuick
In C++: QQuickWindow

속성

첨부 속성

신호

방법

자세한 설명

창 개체는 Qt Quick 장면에 대한 새 최상위 창을 만듭니다. QtQuick 그래픽 유형과 함께 사용할 수 있도록 창을 자동으로 설정합니다.

창은 아이템 내부 또는 다른 창 안에 선언할 수 있으며, 이 경우 내부 창은 자동으로 외부 창에 대한 "임시" 창이 되고 외부 창은 transientParent 로 표시됩니다. 대부분의 플랫폼에서는 이 경우 바깥쪽 창을 중심으로 창이 표시되며, flags 에 따라 다른 플랫폼 종속적인 동작이 있을 수 있습니다. 중첩된 창이 애플리케이션에서 대화 상자로 사용하려는 경우, 일부 창 관리자는 해당 플래그가 없으면 가운데 정렬 동작을 제공하지 않으므로 flagsQt.Dialog 로 설정해야 합니다.

최상위 수준 QtObject 안에 여러 개의 창을 선언할 수도 있습니다. 이 경우 창은 일시적인 관계를 갖지 않습니다.

또는 xy 을 설정하거나 바인딩하여 화면에 창을 명시적으로 배치할 수 있습니다.

사용자가 창을 닫으려고 하면 closing 신호가 전송됩니다. 창을 닫아도 안전하지 않은 경우(예: 저장하지 않은 변경 내용이 더 이상 없기 때문에) close.accepted = false 을 설정하는 onClosing 핸들러를 작성하여 창을 강제로 열어 둘 수 있습니다(예: 사용자에게 변경 내용을 저장하라는 메시지를 표시하기 위해).

onClosing: (close) => {
    if (document.changed) {
        close.accepted = false
        confirmExitPopup.open()
    }
}

// The confirmExitPopup allows user to save or discard the document,
// or to cancel the closing.

스타일링

Qt Quick 의 모든 시각적 유형과 마찬가지로 창은 palettes 을 지원합니다. 그러나 Text 와 같은 유형과 마찬가지로 Window는 기본적으로 팔레트를 사용하지 않습니다. 예를 들어 운영 체제의 테마가 변경될 때 창의 배경색을 변경하려면 color 을 설정해야 합니다:

Window {
    visible: true

    // here we use the Window.active and Window.palette ordinary properties
    color: active ? palette.active.window : palette.inactive.window

    Text {
        anchors.centerIn: parent
        // here we use the Window.active attached property and the Item.palette property
        color: Window.active ? palette.active.windowText : palette.inactive.windowText
        text: Window.active ? "active" : "inactive"
    }
}

ApplicationWindow (및 Label)를 사용하세요. Qt Quick Controls 를 사용하여 자동 스타일링을 적용하세요.

속성 문서

height : int

width : int

x : int

y : int

창의 위치와 크기를 정의합니다.

(x,y) 위치는 창이 하나만 있는 경우 Screen 또는 가상 데스크톱(여러 개의 화면이 배열된 경우)을 기준으로 합니다.

참고: 모든 창 시스템이 최상위 창 위치 설정 또는 쿼리를 지원하는 것은 아닙니다. 이러한 시스템에서는 프로그래밍 방식으로 창을 이동해도 효과가 없을 수 있으며 현재 위치에 대해 QPoint(0, 0) 과 같은 인위적인 값이 반환될 수 있습니다.

Window { x: 100; y: 100; width: 100; height: 100 }


minimumHeight : int

minimumWidth : int

창의 최소 크기를 정의합니다.

지정된 너비와 높이 이하로 크기가 조정되지 않도록 창 관리자에 대한 힌트입니다.


maximumHeight : int

maximumWidth : int

창의 최대 크기를 정의합니다.

지정된 너비와 높이 이상으로 크기가 조정되지 않도록 창 관리자에게 알려주는 힌트입니다.


active : bool [read-only]

창의 활성 상태입니다.

Window {
    visible: true

    // here we use the Window.active and Window.palette ordinary properties
    color: active ? palette.active.window : palette.inactive.window
}

requestActivate()도 참조하세요 .


activeFocusItem : Item [read-only]

현재 활성 초점이 있는 항목 또는 활성 초점이 있는 항목이 없는 경우 null.


color : color

창의 배경색입니다.

이 속성을 설정하는 것이 별도의 직사각형을 사용하는 것보다 더 효율적입니다.

참고: 색상을 "transparent" 또는 알파 반투명도가 있는 색상으로 설정하는 경우 flags: Qt.FramelessWindowHint 와 같은 적절한 flags 도 설정해야 합니다. 그렇지 않으면 모든 플랫폼에서 창 반투명도가 일관되게 활성화되지 않을 수 있습니다.


contentItem : Item [read-only]

장면의 보이지 않는 루트 항목입니다.


contentOrientation : Qt::ScreenOrientation

창과 관련하여 팝업, 대화 상자, 상태 표시줄 등과 같은 추가 콘텐츠를 표시해야 하는 경우 창 관리자에게 힌트를 제공합니다.

권장 방향은 Screen.orientation 이지만 애플리케이션이 가능한 모든 방향을 지원할 필요는 없으므로 현재 화면 방향을 무시하도록 선택할 수 있습니다.

창과 콘텐츠 방향의 차이에 따라 콘텐츠를 얼마나 회전할지 결정됩니다.

기본값은 Qt::PrimaryOrientation 입니다.

Screen참조하세요 .


data : list<QtObject> [default]

데이터 속성을 사용하면 창에서 시각적 자식, 리소스 및 기타 창을 자유롭게 혼합할 수 있습니다.

데이터 목록에 다른 창을 할당하면 중첩된 창은 바깥쪽 창에 대한 "임시" 창이 됩니다.

데이터 목록에 Item 을 할당하면 해당 창은 contentItem 의 자식이 되어 창 안에 나타납니다. 항목의 부모는 해당 창 내의 항목 소유권 트리의 루트인 창의 contentItem 이 됩니다.

다른 객체 유형을 지정하면 리소스로 추가됩니다.

data 속성은 창에 대한 기본 속성이므로 모든 자식 항목이 이 속성에 자동으로 할당되므로 일반적으로 참조할 필요가 없습니다.

QWindow::transientParent()도 참조하세요 .


flags : Qt::WindowFlags

창의 창 플래그.

창 플래그는 창 시스템에서 창이 대화상자인지, 팝업인지, 일반 창인지, 제목 표시줄이 있는지 여부 등 창 모양을 제어합니다.

요청된 플래그를 충족할 수 없는 경우 이 속성에서 읽어오는 플래그가 설정한 플래그와 다를 수 있습니다.

import QtQuick

Window {
    id: mainWindow
    title: "Main Window"
    color: "#456"
    property real defaultSpacing: 10

    property Splash splash: Splash {
        onTimeout: mainWindow.show()
    }

    component Splash: Window {
        id: splash

        // a splash screen has no titlebar
        flags: Qt.SplashScreen
        // the transparent color lets background behind the image edges show through
        color: "transparent"
        modality: Qt.ApplicationModal // in case another application window is showing
        title: "Splash Window" // for the taskbar/dock, task switcher etc.
        visible: true

        // here we use the Screen attached property to center the splash window
        x: (Screen.width - splashImage.width) / 2
        y: (Screen.height - splashImage.height) / 2
        width: splashImage.width
        height: splashImage.height

        property int timeoutInterval: 2000
        signal timeout

        Image {
            id: splashImage
            source: "images/qt-logo.png"
        }

        TapHandler {
            onTapped: splash.timeout()
        }

        Timer {
            interval: splash.timeoutInterval; running: true; repeat: false
            onTriggered: {
                splash.visible = false
                splash.timeout()
            }
        }
    }
}

Qt::WindowFlagsQt Quick 예제 - 창 및 화면도참조하세요 .


modality : Qt::WindowModality

창의 모달리티.

모달 창은 다른 창이 입력 이벤트를 수신하지 못하도록 합니다. 가능한 값은 Qt.NonModal (기본값), Qt.WindowModal, Qt.ApplicationModal입니다.


opacity : real

창의 불투명도.

창 시스템이 창 불투명도를 지원하는 경우, 창을 페이드 인/아웃하거나 반투명하게 만드는 데 사용할 수 있습니다.

값이 1.0 이상이면 완전히 불투명한 것으로 처리되고 0.0 이하면 완전히 투명한 것으로 처리됩니다. 그 사이의 값은 두 극단 사이의 다양한 투명도 수준을 나타냅니다.

기본값은 1.0입니다.


palette : Palette [since 6.0]

이 속성은 현재 창에 설정된 팔레트를 유지합니다.

기본 팔레트는 시스템 환경에 따라 달라집니다. QGuiApplication 에서는 모든 애플리케이션 창의 기본값으로 사용되는 시스템/테마 팔레트를 유지 관리합니다. QML을 로드하기 전에 QGuiApplication::setPalette()에 사용자 지정 팔레트를 전달하여 창에 대한 기본 팔레트를 설정할 수도 있습니다.

창은 명시적 팔레트 속성을 자식 항목과 컨트롤에 전파하여 해당 속성에 대한 시스템 기본값을 재정의합니다.

import QtQuick
import QtQuick.Controls

Window {
    visible: true

    // here we use the Window.active and Window.palette ordinary properties
    color: active ? palette.active.window : palette.inactive.window

    // colors that are not customized here come from SystemPalette
    palette.active.window: "peachpuff"
    palette.windowText: "brown"

    Text {
        anchors.centerIn: parent
        // here we use the Window.active attached property and the Item.palette property
        color: Window.active ? palette.active.windowText : palette.inactive.windowText
        text: Window.active ? "active" : "inactive"
    }

    Button {
        text: "Button"
        anchors {
            bottom: parent.bottom
            bottomMargin: 6
            horizontalCenter: parent.horizontalCenter
        }
    }
}

이 프로퍼티는 Qt 6.0에 도입되었습니다.

Item::palette, Popup::palette, ColorGroup, SystemPalette참조하십시오 .


screen : variant

창이 연결된 화면.

창을 표시하기 전에 지정하면 명시적인 창 위치가 설정되지 않은 한 해당 화면에 창이 표시됩니다. 값은 Qt.application.screens 배열의 요소여야 합니다.

참고: 기본 네이티브 창이 생성될 때 창이 원하는 화면과 연결되도록 하려면 이 속성을 가능한 한 빨리 설정하고 값 설정이 지연되지 않도록 하십시오. 이는 한 번에 하나의 창만 허용되는 창 시스템이 없는 임베디드 플랫폼에서 특히 중요할 수 있습니다. 창이 생성된 후 화면을 설정해도 새 화면이 이전 화면과 동일한 가상 데스크톱의 일부인 경우 창이 이동하지 않습니다.

QWindow::setScreen(), QWindow::screen(), QScreen, 및 Qt.application참조하세요 .


title : string

창 시스템에서 창 제목.

창 제목은 창 시스템 및 창 플래그에 따라 창 장식의 제목 영역에 표시될 수 있습니다. 또한 작업 전환기와 같은 다른 컨텍스트에서 창을 식별하기 위해 창 시스템에서 사용할 수도 있습니다.


transientParent : QWindow

이 창이 일시적인 팝업인 창입니다.

이 창이 일시적인 부모 창을 대신하는 대화 상자 또는 팝업이라는 것을 창 관리자에게 알려주는 힌트입니다. 일반적으로 임시 창이 처음 표시될 때 임시 창이 임시 부모 창 위에 중앙에 배치되고, 부모 창을 최소화하면 임시 창도 최소화된다는 의미이지만 플랫폼마다 결과는 다소 다릅니다.

default property 또는 전용 프로퍼티를 통해 항목 또는 다른 창 안에 창을 선언하면 transientParent 프로퍼티가 명시적으로 설정되어 있지 않는 한 포함 창에 대한 임시 부모 관계가 자동으로 설정됩니다. 이는 Qt.createComponent 또는 Qt.createQmlObject 을 통해 창 항목을 만들 때에도 적용되며, parent 인수로 Item 또는 창이 전달되는 한 적용됩니다.

일시적 부모가 있는 창은 visible 속성이 true 인 경우에도 일시적 부모가 표시될 때까지 표시되지 않습니다. 이는 위에서 설명한 자동 일시적 부모 관계에도 적용됩니다. 특히 Window의 포함 요소가 Item인 경우 시각적 상위 계층 구조를 통해 포함 항목이 장면에 추가될 때까지 창이 표시되지 않습니다. transientParent를 null 로 설정하면 이 동작이 재정의됩니다:

Window {
    // visible is false by default
    Window {
        transientParent: null
        visible: true
    }
}

창 관리자에 따라 기본적으로 창이 일시적 부모 위에 중앙에 위치하도록 하려면 Window::flags 속성을 적절한 Qt::WindowType (예: Qt::Dialog)로 설정해야 할 수도 있습니다.

parent()도 참조하세요 .


visibility : QWindow::Visibility

창의 화면 점유 상태입니다.

가시성은 창을 창 관리 시스템에서 일반, 최소화, 최대화, 전체 화면 또는 숨김으로 표시할지 여부를 나타냅니다.

가시성을 AutomaticVisibility 으로 설정한다는 것은 창에 기본 표시 상태를 부여한다는 의미이며, 플랫폼에 따라 FullScreen 또는 Windowed 이 될 수 있습니다. 그러나 가시성 속성을 읽을 때는 항상 실제 상태가 표시되며 AutomaticVisibility 는 표시되지 않습니다.

창이 보이지 않는 경우 가시성은 Hidden 이며, 가시성을 Hidden 으로 설정하는 것은 visiblefalse 으로 설정하는 것과 동일합니다.

import QtQuick
import QtQuick.Controls

Window {
    id: win
    flags: Qt.Window | Qt.WindowFullscreenButtonHint
    visibility: fullscreenButton.checked ? Window.FullScreen : Window.Windowed

    Button {
        id: fullscreenButton
        anchors {
            right: parent.right
            top: parent.top
            margins: 6
        }
        width: height
        checkable: true
        Binding on checked { value: win.visibility === Window.FullScreen }
        text: "⛶"
        ToolTip.visible: hovered
        ToolTip.delay: Qt.styleHints.mousePressAndHoldInterval
        ToolTip.text: win.visibility === Window.FullScreen ? qsTr("restore") : qsTr("fill screen")
    }
}

visibleQt Quick 예제 - 창 및 화면도참조하세요 .


visible : bool

창이 화면에 표시되는지 여부입니다.

표시 여부를 false로 설정하는 것은 visibilityHidden 으로 설정하는 것과 동일합니다.

visibility 으로 설정하여 재정의하지 않는 한 기본값은 false 입니다.

visibility도 참조하세요 .


첨부된 속성 문서

Window.height : int

Window.width : int

이 첨부 프로퍼티는 항목의 창 크기를 유지합니다. 창 첨부 속성은 모든 항목에 첨부할 수 있습니다.


Window.active : bool [read-only]

이 첨부 프로퍼티는 창이 활성화되어 있는지 여부를 알려줍니다. 창 첨부 속성은 모든 항목에 첨부할 수 있습니다.

다음은 레이블이 표시되는 창의 활성 상태를 표시하도록 레이블을 변경하는 예제입니다:

import QtQuick

Text {
    text: Window.active ? "active" : "inactive"
}

Window.activeFocusItem : Item [read-only]

이 첨부된 속성은 현재 활성 포커스가 있는 항목 또는 활성 포커스가 있는 항목이 없는 경우 null 을 보유합니다. 창 첨부 속성은 모든 항목에 첨부할 수 있습니다.


Window.contentItem : Item [read-only]

이 첨부된 속성은 장면의 보이지 않는 루트 항목 또는 항목이 창에 없는 경우 null 을 보유합니다. 창 첨부 속성은 모든 항목에 첨부할 수 있습니다.


Window.visibility : QWindow::Visibility [read-only]

이 첨부 속성은 창이 현재 창 시스템에서 일반, 최소화, 최대화, 전체 화면 또는 숨김으로 표시되는지 여부를 저장합니다. Window 첨부 속성은 모든 항목에 첨부할 수 있습니다. 항목이 어떤 창에도 표시되지 않는 경우 값은 Hidden 입니다.

visiblevisibility참조하세요 .


Window.window : Window

이 첨부 속성은 항목의 창을 보유합니다. 창 첨부 속성은 모든 항목에 첨부할 수 있습니다.


신호 문서

afterAnimating()

이 신호는 렌더 스레드에 씬 그래프의 동기화를 요청하기 전에 GUI 스레드에서 발생됩니다.

각 애니메이션 단계 후에 추가 처리를 수행하기 위해 onAfterAnimating을 구현할 수 있습니다.

참고: 해당 핸들러는 onAfterAnimating 입니다.


closing(CloseEvent close)

이 신호는 사용자가 창을 닫으려고 할 때 발생합니다.

이 신호에는 close 매개 변수가 포함됩니다. close.accepted 속성은 기본적으로 참이므로 창을 닫을 수 있지만 창을 닫기 전에 다른 작업을 수행해야 하는 경우 onClosing 핸들러를 구현하고 close.accepted = false 를 설정할 수 있습니다.

참고: 해당 핸들러는 onClosing 입니다.


frameSwapped()

이 신호는 프레젠테이션을 위해 프레임이 대기열에 대기 중일 때 발생합니다. 수직 동기화가 활성화된 경우 이 신호는 연속적으로 애니메이션이 진행되는 장면에서 동기화 간격당 최대 한 번만 방출됩니다.

참고: 해당 핸들러는 onFrameSwapped 입니다.


sceneGraphError(SceneGraphError error, QString message)

이 신호는 씬 그래프 초기화 중에 error 가 발생했을 때 발생합니다.

그래픽 컨텍스트 생성 실패와 같은 오류를 사용자 지정 방식으로 처리하기 위해 onSceneGraphError(error, message)를 구현할 수 있습니다. 이 신호에 연결된 핸들러가 없으면 Quick은 message 를 인쇄하거나 메시지 상자를 표시하고 애플리케이션을 종료합니다.

참고: 해당 핸들러는 onSceneGraphError 입니다.


메서드 문서

alert(int msec)

msec 밀리초 동안 경고를 표시합니다. msec0 (기본값)인 경우 창이 다시 활성화될 때까지 경고가 무기한 표시됩니다.

경고 상태에서는 창이 깜박이거나 작업 표시줄 항목이 튕기는 등의 방법으로 주의가 필요하다는 것을 나타냅니다.


close()

창을 닫습니다.

이 메서드가 호출되거나 사용자가 제목 표시줄 버튼으로 창을 닫으려고 하면 closing 신호가 전송됩니다. 핸들러가 없거나 핸들러가 닫기 권한을 취소하지 않으면 이후 창이 닫힙니다. QGuiApplication::quitOnLastWindowClosed 속성이 true 이고 열려 있는 다른 창이 없는 경우 애플리케이션이 종료됩니다.


hide()

창을 숨깁니다.

visiblefalse 으로 설정하거나 visibilityHidden 으로 설정하는 것과 같습니다.

show()도 참조하세요 .


lower()

창 시스템에서 창을 내립니다.

창을 다른 창 아래에 표시하도록 창을 낮추도록 요청합니다.


raise()

창 시스템에서 창을 올립니다.

창을 다른 창 위에 표시하도록 창을 올리도록 요청합니다.


requestActivate()

창을 활성화(예: 키보드 포커스 수신)하도록 요청합니다.


show()

창을 표시합니다.

이는 창 유형 및 플래그에 대한 플랫폼의 기본 동작에 따라 showFullScreen(), showMaximized() 또는 showNormal()를 호출하는 것과 동일합니다.

showFullScreen(), showMaximized(), showNormal(), hide() 및 QQuickItem::flags()도 참조하세요 .


showFullScreen()

창을 전체 화면으로 표시합니다.

visibilityFullScreen 으로 설정하는 것과 같습니다.


showMaximized()

창을 최대로 표시합니다.

visibilityMaximized 으로 설정하는 것과 같습니다.


showMinimized()

창을 최소화한 상태로 표시합니다.

visibilityMinimized 으로 설정하는 것과 같습니다.


showNormal()

창을 최대화, 최소화, 전체 화면이 아닌 일반 상태로 표시합니다.

visibilityWindowed 으로 설정하는 것과 같습니다.


© 2025 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.