Neptune 3 UI - 在嵌入式Linux上配置屏幕
Neptune 3的系统UI有两个顶级窗口:中心控制台和仪表盘。它们不应与应用程序的中心控制台(ApplicationCCWindow)和仪表盘窗口(ApplicationICWindow)混淆,后者在前述系统UI对应项中合成。在本文档中,我们仅指系统UI的顶级窗口。
在目标硬件上,Neptune 3 UI将在EGLFS平台上运行时,每个窗口将在其自己的屏幕(QScreen)上显示(全屏)。中心控制台窗口将显示在索引为0的屏幕上,仪表盘在索引为1的屏幕上(如果目标配备第二个屏幕的话),如Qt.application.screens列表(或从C++侧的QGuiApplication::screens)中定义。
您可以通过在Qt的屏幕列表中指定设备显示的顺序来指定Qt在其屏幕列表中暴露的顺序,因此可以控制仪表盘和中心控制台显示的位置。为此,您需要向Qt提供一个配置文件,其中将显示名称映射到屏幕列表中的索引。
第一步是找出系统中的显示器的名称。这相当简单。只需在目标硬件上运行名为qtdiag
的Qt工具并检查输出即可。它将显示有关系统和Qt配置的信息,包括有关显示器的信息。以下是从连接两个外部显示器的系统获取的qtdiag
输出片段。
Screens: 2, High DPI scaling: inactive # 0 "DP1" Depth: 32 Primary: yes Manufacturer: GEC Model: Onlap1503 Serial number: 8888 Geometry: 1920x1080+0+0 Available: 1920x1080+0+0 Virtual geometry: 3520x1200+0+0 Available: 3520x1200+0+0 2 virtual siblings Physical size: 350x200 mm Refresh: 60 Hz Power state: 0 Physical DPI: 139.337,137.16 Logical DPI: 139.337,137.16 Subpixel_None DevicePixelRatio: 1 Pixel density: 1 Primary orientation: 2 Orientation: 2 Native orientation: 0 OrientationUpdateMask: 0 # 1 "DP2" Depth: 32 Primary: no Manufacturer: Eizo Nanao Corporation Model: L887 Serial number: 56110036 Geometry: 1600x1200+1920+0 Available: 1600x1200+1920+0 Virtual geometry: 3520x1200+0+0 Available: 3520x1200+0+0 2 virtual siblings Physical size: 410x310 mm Refresh: 60 Hz Power state: 0 Physical DPI: 99.122,98.3226 Logical DPI: 99.122,98.3226 Subpixel_None DevicePixelRatio: 1 Pixel density: 1 Primary orientation: 2 Orientation: 2 Native orientation: 0 OrientationUpdateMask: 0
在此示例中,屏幕"DP1"
被分配为索引0(默认行为,因此将显示中心控制台),"DP2"
为索引1(因此将显示仪表盘)。如果我们想要反过来的话:要使中心控制台在"DP2"
上,仪表盘在"DP1"
上,我们就必须编写以下配置文件(JSON格式)。
{ "outputs": [ { "name": "DP1", "virtualIndex": 1 }, { "name": "DP2", "virtualIndex": 0 } ] }
为了使其正常工作,我们必须使neptune3-ui
在启动时使用此配置文件。这是通过一个名为QT_QPA_EGLFS_KMS_CONFIG
的环境变量实现的。它的值是您希望使用的配置文件的文件路径。例如
QT_QPA_EGLFS_KMS_CONFIG=/home/foo/.config/neptune3-ui-display-config.js
有关更多信息,请参阅嵌入式Linux中的Qt。
©2019 Luxoft Sweden AB。所提供的文档贡献的版权属于各自的版权所有者。
所提供的文档是根据GNU自由文档许可版本1.3许可的,由自由软件基金会出版。
Qt和相应的标志是芬兰以及/或世界其他地区的Qt公司的商标。所有其他商标均为各自所有权人的财产。