外壳扩展Qt Wayland Compositor
在 Wayland 中,shell是提供表面语义的扩展。这意味着它们为服务器和客户端提供了就曲面进行通信的方法。在这种情况下,曲面通常也被称为 "窗口",这通常是曲面在合成器中的表现形式。
Shell 扩展为客户端和服务器提供了就某些事情进行交流的工具:
- 它们可以提供一种方法,让客户端告知服务器曲面的用途:例如,它是工具提示、弹出式菜单还是普通的应用程序窗口?服务器可据此决定窗口的几何形状以及用户与之交互的方式。
- 它们还可以提供操作表面的协议,如调整大小、移动和隐藏。
与其他扩展一样,对 shell 的支持也是通过将它们实例化为WaylandCompositor 顶层对象的直接子对象而添加到合成器中的。Qt 支持的 shell 扩展包括WlShell,XdgShell 和IviApplication 。
- XdgShell 是一种适用于桌面风格系统的 shell,在这种系统中可以连接任意数量的应用程序,而且用户可以手动调整窗口的大小和位置。
- IviApplication 是一种简约的协议,最初用于 In-Vehicle Infotainment 系统。它适用于嵌入式系统,在这些系统中可以运行一组预定义的应用程序,通常还可以预先分配屏幕空间。有关该协议的更多详情,请参阅IVI Compositor 示例。
- QtShell 是 Qt 应用程序的专用外壳,支持 Qt 中的窗口管理功能。它适用于合成器和客户端应用程序都使用 Qt 编写的平台,并且应用程序不会滥用手动窗口定位和 "bring-to-front "等功能。
- WlShell Qt shell 主要用于与第三方应用程序兼容。这也是一个桌面风格的 shell,但它已被弃用,取而代之的是 。XdgShell
在自底向上设计嵌入式系统时,并没有确定使用哪个 shell 扩展的规则。通常情况下,它要么是XdgShell ,要么是IviApplication 。作出这一决定时,应考虑系统需要哪些功能,以及是否涉及非 Qt XML 编写的应用程序,而这些应用程序又有自己的要求。
Qt Wayland Compositor 也可以同时支持多个 shell 扩展。请参阅Minimal QML 示例,了解支持上述所有三种 shell 扩展的示例。
© 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.