화면 확장
'화면 확장'은 Wayland 클라이언트가 여러 화면에 걸쳐 표시되도록 하는 방법을 보여주는 예시입니다.
소개
'화면 확장'은 Wayland 컴포지터 예제로, 클라이언트를 상단 및 하단 화면에 걸쳐 최대화합니다.

Qt를 사용하여 Qt Wayland Compositor'Minimal Qml' 예제를 참조하십시오.
다중 화면 지원
이 예제에서 Qt Wayland Compositor 한 화면은 ` WaylandOutput`로 표현되며, ` Window `는 Qt Quick 클라이언트와 컴포지터의 UI를 모두 나타내는 장면을 담는 데 사용됩니다.
이 예제에서는 주 화면에 두 개의 창을 생성하여 다중 화면 설정을 에뮬레이션하지만, 코드를 쉽게 수정하여 여러 개의 물리적 화면을 대상으로 할 수 있습니다.
// Enable the following to make the output target an actual screen,
// for example when running on eglfs in a multi-display embedded system.
// screen: Qt.application.screens[0]각 Window는 독립된 Qt Quick 장면을 나타내므로, 두 창 모두에 동일한 클라이언트 콘텐츠를 표시하려면 약간의 기법이 필요합니다. 이를 수행하는 방법은 Qt Wayland Compositor 같은 클라이언트 콘텐츠에 대한 두 개의 뷰를 생성하는 것입니다. 하나는 "상단" 창용이고, 다른 하나는 "하단" 창용입니다. 이 뷰들은 동일한 기본 그래픽 버퍼에 대한 참조를 공유합니다. 이를 통해 클라이언트 서페이스의 서로 다른 영역을 각 창에 복사할 수 있습니다.
const topItem = chromeComponent.createObject(topSurfaceArea, {
shellSurface
});
const bottomItem = chromeComponent.createObject(bottomSurfaceArea, {
shellSurface,
y: Qt.binding(function() { return -topSurfaceArea.height;})
});클라이언트가 셸 확장 XdgShell에 연결되면, 표면에 대한 두 개의 참조를 생성합니다. 그중 하나는 “상단” 출력에 추가되고, 다른 하나는 “하단” 출력에 추가됩니다. 하단 출력에 표시되는 항목에는 상단 출력의 높이에 해당하는 오프셋이 적용됩니다. 이를 통해 하단 출력에 표시되는 클라이언트 표면의 부분이 상단 출력이 끝나는 지점에서 시작되도록 보장합니다.
const height = topSurfaceArea.pixelHeight + bottomSurfaceArea.pixelHeight;
const width = Math.max(bottomSurfaceArea.pixelWidth, topSurfaceArea.pixelWidth);
const size = Qt.size(width, height);
toplevel.sendFullscreen(size);또한 클라이언트에게 상단 및 하단 창을 모두 채우도록 표면의 크기를 조정하도록 지시합니다. 최종 결과는 두 개의 창, 즉 “화면”에 걸쳐 표시되는 클라이언트입니다.
여러 항목에서 동일한 클라이언트 표면을 참조하는 기능은 다양한 용도로 활용할 수 있는 도구입니다. 창을 화면 간에 이동할 수 있는 데스크톱 스타일의 컴포지터를 확인하려면 Multi Screen 예제를 살펴보세요.
'Multi Output' 예제는 클라이언트 표면을 크기와 기타 속성이 서로 다른 여러 출력에 표시하는 방법을 보여줍니다.
참고: 동일한 컴포지터에서 여러 Wayland 출력을지원하려면 , ` QGuiApplication ` 객체를 생성하기 전에 ` Qt::AA_ShareOpenGLContexts ` 속성을 설정해야 합니다.
© 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.