개요: 컴포지터
'개요: 컴포지터'에서는 그리드 내에서 클라이언트 간 전환 방법을 보여줍니다.
소개
'Compositor 개요'에서는 현재 연결된 클라이언트 그리드에서 애플리케이션을 선택하고 활성화하는 방법을 보여줍니다.

Qt를 사용하여 Qt Wayland Compositor 에 대한 소개는 ‘Minimal Qml’ 예제를 참조하십시오.
애플리케이션 그리드
이 예제에서 컴포지터는 두 가지 다른 작동 모드를 지원합니다.
- 전체 화면 모드: 단일 애플리케이션 창이 컴포지터 창 전체를 차지하며 상호작용이 가능합니다.
- 개요 모드: 모든 애플리케이션 창이 그리드 형태로 표시됩니다. 그리드에서 창을 클릭하면 해당 창이 선택됩니다. 컴포지터는 전체 화면 모드로 전환되어 선택된 애플리케이션 창을 표시합니다.
클라이언트가 컴포지터에 연결하여 최상위 서페이스를 생성하면, 해당 서페이스는 셸 확장 기능에 연결됩니다. 이 예제는 ‘ XdgShell ’ 확장 기능만 지원하므로, 클라이언트는 이 확장 기능에 연결하게 됩니다.
XdgShell {
onToplevelCreated: (toplevel, xdgSurface) => {
toplevels.append({xdgSurface});
toplevel.sendFullscreen(Qt.size(win.pixelWidth, win.pixelHeight));
}
}각 서피스에 대해 클라이언트에게 이를 전체 화면으로 구성하도록 지시합니다. 또한, 쉽게 접근할 수 있도록 서피스들이 ListModel 에 추가됩니다.
이 모델은 Repeater 이 Grid 내부에 ShellSurfaceItems 을 생성하는 데 사용됩니다. Grid 구성 요소는 항목을 격자 형태로 배치합니다.
Repeater {
model: toplevels
Item {
width: win.width
height: win.height
ShellSurfaceItem {
anchors.fill: parent
shellSurface: xdgSurface
onSurfaceDestroyed: toplevels.remove(index)
}
MouseArea {
enabled: grid.overview
anchors.fill: parent
onClicked: {
grid.selected = index;
grid.overview = false;
}
}
}
}각 항목에 대해, 해당 항목을 덮고 모든 마우스 및 터치 입력을 가로채는 MouseArea 을 생성합니다. 이는 컴포지터가 개요 모드에 있을 때만 활성화되며, 클릭된 애플리케이션을 실행합니다.
컴포지터가 전체 화면 모드로 전환되면 동일한 Grid 컴포넌트가 사용되지만, 선택된 단일 셀이 컴포지터 창을 가득 채우도록 크기가 조정되고 위치가 이동됩니다. 이는 선택된 셀을 “확대”하여 사용자가 해당 셀에 포함된 애플리케이션과 상호작용할 수 있도록 하기 위함입니다.
transform: [
Scale {
xScale: grid.overview ? (1.0/grid.columns) : 1
yScale: grid.overview ? (1.0/grid.columns) : 1
Behavior on xScale { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 200 } }
Behavior on yScale { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 200 } }
},
Translate {
x: grid.overview ? 0 : win.width * -grid.selectedColumn
y: grid.overview ? 0 : win.height * -grid.selectedRow
Behavior on x { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 200 } }
Behavior on y { PropertyAnimation { easing.type: Easing.InOutQuad; duration: 200 } }
}
]창 하단에는 모드를 전환하는 버튼이 있습니다. 이 버튼을 사용하면 컴포지터가 전체 화면 모드에 있을 때 애플리케이션 그리드를 다시 표시할 수 있습니다.
이 예제는 컴포지터가 다양한 모드에서 클라이언트를 시각화하는 한 가지 방법을 보여줍니다. 유사한 효과를 얻는 또 다른 방법은 동일한 서피스(surface)를 참조하는 여러 개의 컴포지터 항목( Qt Quick )을 생성하는 것입니다. 데모는 ‘Multi Output’ 예제를 참조하십시오.
© 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.