C

配置显示旋转

描述

在某些硬件上,设备的显示方向与 UI 方向不同,例如在纵向显示面板上使用横向 UI。Qt Quick Ultralite 允许将整个应用程序的内容旋转一个 90 度的倍数来处理此类场景。例如,可以设置应用程序项目属性MCU.Config.displayRotationAngle90 以启用设计并实现横向 UI,但渲染到纵向显示上,就像显示实际上具有横向方向一样。最终效果如下所示

带有 90 度静态屏幕旋转的纵向显示面板上的横向 UI

用法

可以使用 MCU.Config.displayRotationAngleMCU.Config.showDesktopPreviewInNaturalDisplayOrientation QmlProject 属性来配置显示旋转。以下示例配置演示了如何使用它们

MCU.Config {
    displayRotationAngle: 90
    showDesktopPreviewInNaturalDisplayOrientation: false
}

根据应用程序是在目标硬件上运行还是桌面平台上运行,旋转行为可能会有所不同。默认情况下,桌面平台上不旋转加载应用程序 UI,但您可以通过将 MCU.Config.showDesktopPreviewInNaturalDisplayOrientation 设置为 false 来覆盖此行为。

在 PaintedItem 中处理自定义绘图

当启用旋转时,与设备上的物理屏幕(物理坐标系)相比,应用程序在转换坐标系统(虚拟坐标系)上运行。您应该在您的自定义 PaintedItem 实现中考虑这一差异。

您的自定义实现应处理 PaintedItemDelegate::paint() 方法中的 transform 参数,以应用必要的转换。

Qt Quick Ultralite painteditem 示例 演示了您如何从自定义绘制的项目中处理屏幕旋转。

性能影响

当使用90度、180度或270度的显示旋转角度时,资源编译器将在应用《资源编译器》中预旋转在应用的《qmlproject》文件中指定的图像资源。这样,它们可以在运行时无需旋转即可混合,从而避免昂贵的性能开销。

所有文本的符号alpha映射在运行时会旋转混合。这种旋转可能会根据平台有显著的性能影响。您可以使用《文本缓存》功能来在相应的文本缓存条目不需要重新生成的情况下启用无旋转的绘画。只有当文本发生变化或文本缓存过小时才会重新生成文本缓存条目,因此必须删除缓存条目来为新条目腾出空间。

注意:文本缓存在MIMXRT1170-EVKB、Renesas RH850/D1M1A和Infineon TRAVEO™ T2G板上默认启用。

StaticText》项目不使用文本缓存,因此当启用显示旋转时,可能更倾向于使用Text项目。

另请参阅 MCU.Config.showDesktopPreviewInNaturalDisplayOrientationMCU.Config.displayRotationAngle

受某些 Qt 许可证方案的保护。
了解更多信息。