Neptune 3 UI - 系统UI
Neptune 3 UI中的系统UI是一个由一个或多个顶级QWindows组成的QML应用:一个中央控制台窗口,一个可选的仪表盘窗口,以及一个可选的HUD窗口。系统UI是一个特殊的QML应用,因为它使用了QtApplicationManager,使其成为一个完全成熟的合成管理器。
然后,称为Neptune 3应用的常规应用作为纯QML项出现在系统UI中,系统UI根据需要在QML场景中定位这些项。
在目标硬件上,每个系统UI窗口驱动整个显示器或屏幕,通常是全屏显示,控制所有在它们上渲染的内容。通常使用eglfs
后端来完成此渲染。然而,在桌面开发环境中,每个系统UI窗口被视为一个普通的桌面窗口。
系统UI允许您截图Neptune 3 UI当前的状态并将其导出。同时,它还导出Qt诊断工具的输出。导出的文件存储在/tmp文件夹中。要在中央控制台中截图,请按住右上角的时钟;或按CTRL + P。
设置和UI持久性
系统UI将用户选择显示为小部件的应用的state存储。此行为使用Settings QML类型来实现,并作为设置文件存储在用户的本地计算机上。当UI停止后,稍后重启时,Neptune 3 UI将重新加载之前显示为小部件的应用。然而,如果Neptune 3 UI停止之前没有选择小部件,则当Neptune 3 UI重启时,它将加载默认的应用程序集,例如日历应用、音乐应用和电话应用。
Wayland合成器
上面的图示显示了使用Qt Wayland的系统UI如何组合应用的流程。有关更多信息,请参阅Qt Wayland和Wayland和Qt。
线框
Neptune 3 UI定义了五种类型的应用程序窗口;系统UI以不同的方式处理它们。这五个窗口是
- 应用中心控制台窗口
- 应用仪表盘窗口
- HUD窗口
- 底部栏窗口
- 应用弹出窗口
系统UI使用WindowType
属性区分多种类型的窗口。应用代码不需要担心这个实现细节,因为这是由专业的ApplicationCCWindow、ApplicationICWindow和PopupWindow QML组件处理的。
系统UI窗口项与应用程序窗口
系统UI窗口项位于合成器端,用于定位来自应用程序的表面。相比之下,应用程序窗口用于客户端以在其上显示内容,这些内容位于合成器端系统UI窗口项内部。
系统UI窗口项
系统UI包含多个窗口项,例如应用程序中心控制台窗口项、应用程序仪表群窗口项、弹出窗口项、底部栏窗口项和顶部栏窗口项。它们继承自NeptuneWindowItem,该窗口项包含基本属性,供应用程序使用,如缩放因子、强调色和当前主题。每个窗口项组件都有其特定的窗口属性,用于不同目的。
应用程序中心控制台窗口项
系统UI使用ApplicationCCWindowItem组件来显示类型为ApplicationCCWindow的应用程序窗口,其中"CC"代表"中心控制台"。ApplicationCCWindowItem携带了一些应用程序需要的属性,例如应用程序小部件的状态(单行小部件、两行小部件和三行小部件)以及最大化视图的一个状态。应用程序需要接收由该应用程序使用的小部件的当前状态,以应用一些动画;因为每个状态都有自己的外观。因此,系统UI需要为应用程序设置小部件状态的窗口属性。此外,公开的矩形属性提供了小部件中可见矩形窗口面积的x、y、宽度和高度。应用程序可以使用这些属性来正确地适应当小部件区域组合时被系统UI裁剪的窗口。
应用程序仪表群窗口项
系统UI使用ApplicationICWindowItem组件来显示类型为ApplicationICWindow的应用程序窗口,其中"IC"代表"仪表群"。系统UI协调并将窗口分配给相应的窗口项。在这种情况下,它显示在仪表群的仪表后面。
应用程序窗口
Neptune 3 UI为应用程序提供了两种主要类型的应用程序窗口:ApplicationCCWindow和ApplicationICWindow。
应用程序中心控制台窗口
对于需要在中心控制台显示的应用程序,应使用ApplicationCCWindow。它继承自NeptuneWindow并添加了接收系统UI发出的windowPropertyChanged信号的附加属性。此外,为了调试目的,可以使用MonitorOverlay来显示特定应用程序的性能消耗。这可以通过系统UI的performanceOverlayVisible
属性启用。
应用程序仪表群窗口
与ApplicationCCWindow类似,ApplicationICWindow也继承自NeptuneWindow并添加了一些附加的窗口大小属性。《ApplicationICWindow
附加窗口
有一些额外窗口用于特定的用例,例如弹出窗口、底栏窗口和顶栏窗口。系统用户界面负责在专用窗口项上显示这些窗口。
弹出窗口
任何需要在Neptune 3 UI中显示弹出窗口的应用程序都可以使用弹出窗口。系统用户界面为应用程序创建弹出窗口,并在请求时显示它。
底栏窗口
如果您需要在中央控制台底部显示特殊应用程序,请使用底栏窗口。目前,在Neptune 3 UI中,这里是气候应用程序的显示位置。
©2019 Luxoft Sweden AB。本文件中包含的文档贡献归各自所有者所有。
所提供的文档受GNU自由文档许可版1.3许可的约束,许可由自由软件基金会发布。
Qt及其相关标志是芬兰的Qt公司及其它国家和地区的商标。所有其他商标均为其各自所有者的财产。