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公司的商标。所有其他商标均为各自所有权人的财产。