Shell 扩展 - Qt Wayland 组合器

在 Wayland 中,shell 是提供 表面语义 的扩展。这意味着它们提供了服务器和客户端之间关于表面的通信方式。在这个上下文中,“表面”通常也称为“窗口”,这是组合器中表面的典型表示。

Shell 扩展提供了客户端和服务器之间通信的工具

  • 它们可以为客户端提供一种告知服务器关于表面目的的方式:这是一个工具提示、弹出菜单,还是常规应用程序窗口,例如?基于此,服务器可以决定窗口的几何形状以及用户如何与之交互。
  • 它们还可以提供用于操作表面的协议,例如改变大小、移动和隐藏

与其他扩展类似,支持 shell 是通过将它们作为 WaylandCompositor 顶层对象的直接子对象来添加到组合器中的。Qt 支持的 shell 扩展包括:WlShellXdgShellIviApplication

  • XdgShell 是适用于桌面风格的系统的合适 shell,其中可以连接任意数量的应用程序,而且用户可以手动更改窗口的大小和位置。
  • IviApplication 是一种简约的协议,最初是为车载信息娱乐系统设计的。它对嵌入式系统很有用,可以运行一个预定义的应用程序集合,通常拥有预分配的屏幕空间。有关该协议的更多详细信息,请参阅IVI 组合器示例
  • QtShell 是专为 Qt 应用而设计的专业 shell,支持 Qt 中的窗口管理功能。它可能适用于在平台上编写组合器和客户端应用程序都使用 Qt 的平台,并且应用程序不需要滥用像手动窗口定位和“置顶”这样功能。
  • WlShell 主要适用于与第三方应用程序的兼容性。这是一个桌面风格的 shell,但它已被弃用,并由 XdgShell 替换。

在设计自底向上的嵌入式系统时,没有规则决定要使用哪种 shell 扩展。它通常是 XdgShellIviApplication。决定应该受系统所需功能的影响,以及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 公司在全球范围内的商标。所有其他商标均为各自所有者的财产。