셸 익스텐션 Qt Wayland Compositor
웨이랜드에서 셸은 서피스 시맨틱을 제공하는 확장입니다. 즉, 서버와 클라이언트가 서페이스에 대해 통신할 수 있는 방법을 제공합니다. 여기서 표면은 흔히 "창"이라고도 하며, 일반적으로 컴포저에서 표면을 표현하는 것을 말합니다.
셸 확장은 클라이언트와 서버가 특정 사항에 대해 통신할 수 있는 도구를 제공합니다:
- 클라이언트가 서버에 서페이스의 용도에 대해 알릴 수 있는 방법을 제공할 수 있습니다: 예를 들어 툴팁인지, 팝업 메뉴인지, 일반 애플리케이션 창인지 등을 서버에 알려줄 수 있습니다. 이를 기반으로 서버는 창의 지오메트리와 사용자가 상호작용할 수 있는 방법을 결정할 수 있습니다.
- 또한 크기 조정, 이동, 숨기기 등 표면을 조작하기 위한 프로토콜을 제공할 수도 있습니다.
다른 확장과 마찬가지로 셸에 대한 지원은 WaylandCompositor 최상위 객체의 직접 자식으로 인스턴스화하여 컴포저에 추가됩니다. Qt에서 지원하는 셸 확장은 다음과 같습니다: WlShell, XdgShell 및 IviApplication 입니다.
- XdgShell 는 데스크톱 스타일 시스템에 적합한 셸로, 여러 개의 응용 프로그램이 연결될 수 있고 사용자가 창 크기를 수동으로 조정하고 위치를 변경할 수 있습니다.
- IviApplication 은 최소한의 프로토콜로, 원래 In-Vehicle Infotainment 시스템을 위해 고안되었습니다. 미리 정의된 애플리케이션 세트를 실행할 수 있는 임베디드 시스템에 유용하며, 화면 공간이 미리 할당되어 있는 경우가 많습니다. 이 프로토콜에 대한 자세한 내용은 IVI 컴포저 예제를 참조하십시오.
- QtShell 는 Qt에서 사용할 수 있는 창 관리 기능을 지원하는 Qt 어플리케이션 전용 셸입니다. 컴포저와 클라이언트 애플리케이션이 모두 Qt로 작성되고 애플리케이션이 수동 창 위치 지정 및 "앞쪽으로 가져오기" 등의 기능을 남용하지 않을 것으로 신뢰되는 플랫폼에 적합할 수 있습니다.
- WlShell 는 주로 타사 애플리케이션과의 호환성에 유용합니다. 이 역시 데스크톱 스타일 셸이지만 더 이상 사용되지 않고 XdgShell 로 대체되었습니다.
임베디드 시스템을 처음부터 설계할 때 어떤 셸 확장을 사용할지 결정하는 규칙은 없습니다. 일반적으로 XdgShell 또는 IviApplication 중 하나를 선택하게 됩니다. 결정은 시스템에 필요한 기능이 무엇인지, Qt로 작성되지 않았고 자체 요구 사항이 있는 애플리케이션이 포함되어 있는지 여부에 따라 영향을 받아야 합니다.
Qt Wayland Compositor 은 한 번에 여러 셸 확장을 지원할 수도 있습니다. 위에 나열된 세 가지 셸 확장이 모두 지원되는 예제는 최소 QML 예제를 참조하세요.
© 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.