C

Qt Quick Ultralite 温控器演示

演示了使用 Qt Quick Ultralite 构建、基于纯 QML 的应用程序。

概览

此示例展示了开发者可能在生产就绪的应用程序中遇到的多方面问题

  • 在单个应用程序中处理不同的目标显示分辨率
  • 翻译使用 Qt Quick Ultralite 构建的应用程序(英语、德语、日语、阿拉伯语、泰语和印地语)
  • 使用不同的单位(公制和英制)本地化应用程序

注意:在 EK-RA6M3G 上,此演示使用 静态字体引擎,并且已禁用复杂脚本语言。

基准模式

在基准模式下,应用程序以预定义的时间30秒运行,在30秒间隔结束时在屏幕上显示性能指标。如果 Qt Quick Ultralite 核心库使用 QUL_ENABLE_PERFORMANCE_CONSOLE_OUTPUT=ON 构建,则相同的结果也会在串行控制台显示。

测试结束时以下性能指标被显示

参数描述
1总帧数记录间隔内的总帧数。
2平均 FPS在记录间隔期间测量的平均每秒帧数值。
3最小 FPS捕捉到的最小每秒帧数值。
4最大堆使用量自应用程序启动以来记录的最大堆使用量(以字节为单位)。
5最大堆栈使用量自应用程序启动以来记录的最大堆栈使用量(以字节为单位)。
6平均 CPU 负载在记录间隔内以百分比平均值平均的 CPU 负载。

基准模式作为名为 thermo_small_benchmarkthermo_big_benchmark 的独立 CMake 目标提供。要运行基准模式,构建并刷新基准模式目标二进制文件。

主要的 qmlproject 文件包含如下所示的 benchmark_module.qmlproject 文件

ModuleFiles {
  files: [
  "mode/benchmark_module.qmlproject"
  ]
}

在根 QML 文件中导入以下模块。

import QtQuickUltralite.Extras 2.0
import Benchmark 1.0
import QtQuickUltralite.Profiling

在根 QML 中添加 QulPerfOverlay QML 对象以显示基准测试结果。当 benchmarkTimer 在 30 秒后触发时,此覆盖层变得可见。

QulPerfOverlay {
    id: benchmarkResult
    anchors.horizontalCenter: parent.horizontalCenter;
    anchors.verticalCenter: parent.verticalCenter;
    visible: false
}

在根 QML 文件 rootqml/+benchmark/thermo.qml 中开始录制,当根对象实例化且触发 Component.onCompleted 信号时。

Component.onCompleted: {
    QulPerf.recording = true
}

应用程序运行 30 秒。录制在 30 秒后停止,并使基准测试结果屏幕覆盖层可见。

Timer {
    id: benchmarkTimer
    interval: 30000
    running: true
    repeat: false
    onTriggered: {
        QulPerf.recording = false;
        benchmarkResult.visible = true
    }
}

注意:基准测试模式需要 Qt Quick Ultralite Core 和平台库通过编译时启用 QUL_ENABLE_PERFORMANCE_LOGGING=ONQUL_ENABLE_HARDWARE_PERFORMANCE_LOGGING=ON

目标平台

  • EK-RA6M3G
  • MIMXRT1050
  • MIMXRT1060
  • MIMXRT1064
  • STM32F469i
  • STM32F769i
  • STM32H750b

截图

小型屏幕恒温器演示

大型屏幕恒温器演示

文件

图像

在某些Qt许可证下可用。
了解详情。