Shell 扩展 - Qt Wayland 组合器
在 Wayland 中,shell 是提供 表面语义 的扩展。这意味着它们提供了服务器和客户端之间关于表面的通信方式。在这个上下文中,“表面”通常也称为“窗口”,这是组合器中表面的典型表示。
Shell 扩展提供了客户端和服务器之间通信的工具
- 它们可以为客户端提供一种告知服务器关于表面目的的方式:这是一个工具提示、弹出菜单,还是常规应用程序窗口,例如?基于此,服务器可以决定窗口的几何形状以及用户如何与之交互。
- 它们还可以提供用于操作表面的协议,例如改变大小、移动和隐藏
与其他扩展类似,支持 shell 是通过将它们作为 WaylandCompositor 顶层对象的直接子对象来添加到组合器中的。Qt 支持的 shell 扩展包括:WlShell、XdgShell 和 IviApplication。
- XdgShell 是适用于桌面风格的系统的合适 shell,其中可以连接任意数量的应用程序,而且用户可以手动更改窗口的大小和位置。
- IviApplication 是一种简约的协议,最初是为车载信息娱乐系统设计的。它对嵌入式系统很有用,可以运行一个预定义的应用程序集合,通常拥有预分配的屏幕空间。有关该协议的更多详细信息,请参阅IVI 组合器示例。
- QtShell 是专为 Qt 应用而设计的专业 shell,支持 Qt 中的窗口管理功能。它可能适用于在平台上编写组合器和客户端应用程序都使用 Qt 的平台,并且应用程序不需要滥用像手动窗口定位和“置顶”这样功能。
- WlShell 主要适用于与第三方应用程序的兼容性。这是一个桌面风格的 shell,但它已被弃用,并由 XdgShell 替换。
在设计自底向上的嵌入式系统时,没有规则决定要使用哪种 shell 扩展。它通常是 XdgShell 或 IviApplication。决定应该受系统所需功能的影响,以及whether there are applications involved which are not written in Qt and which have their own requirements。
Qt Wayland Compositor 也支持同时支持多个外壳扩展。请参阅最小 QML 示例,其中支持上述列出的所有三个外壳扩展。
© 2024 Qt 公司有限公司。本文档中的文档贡献版权属于各自的所有者。本文档提供的内容采用[gcc GNU自由文档许可证1.3 版](http://www.gnu.org/licenses/fdl.html)许可,由自由软件基金会发布。Qt 及相关的标志是芬兰的 Qt 公司在全球范围内的商标。所有其他商标均为各自所有者的财产。