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_benchmark
和 thermo_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
- Qt Quick Ultralite Extras 模块提供了 QulPerf 对象,它允许开始和停止测量。
Benchmark
模块由benchmark_module.qmlproject
文件提供。它提供了用于模拟触摸手势以控制摇动的函数。- Qt Quick Ultralite Profiling 模块提供了屏幕叠加 QulPerfOverlay,用于在应用程序用户界面上方显示性能指标。
在根 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=ON
和 QUL_ENABLE_HARDWARE_PERFORMANCE_LOGGING=ON
。
目标平台
- EK-RA6M3G
- MIMXRT1050
- MIMXRT1060
- MIMXRT1064
- STM32F469i
- STM32F769i
- STM32H750b
截图
小型屏幕恒温器演示
大型屏幕恒温器演示
文件
- thermo/+big/Theme.qml
- thermo/+small/Theme.qml
- thermo/AnimatedDigit.qml
- thermo/BottomBar.qml
- thermo/CMakeLists.txt
- thermo/Card.qml
- thermo/CardRow.qml
- thermo/FanControlButton.qml
- thermo/LanguageButton.qml
- thermo/LanguageDialog.qml
- thermo/PlacesView.qml
- thermo/PowerSwitch.qml
- thermo/RoomControlButton.qml
- thermo/RoomSchedule.qml
- thermo/RoomView.qml
- thermo/ScheduleView.qml
- thermo/StatsContents.qml
- thermo/StatsView.qml
- thermo/ThermoView.qml
- thermo/TimeIntervalSlider.qml
- thermo/TimeIntervalSliderHandle.qml
- thermo/TopBar.qml
- thermo/WeatherStatus.qml
- thermo/dynamic/Configuration.qml
- thermo/fonts/Spark/FontConfiguration.qml
- thermo/fonts/Static/FontConfiguration.qml
- thermo/imperial/Units.qml
- thermo/imports/Thermo/ColorStyle.qml
- thermo/imports/Thermo/GlobalState.qml
- thermo/imports/Thermo/Room.qml
- thermo/imports/Thermo/Rooms.qml
- thermo/imports/Thermo/qmldir
- thermo/imports/ThermoConfiguration/qmldir
- thermo/metric/Units.qml
- thermo/mode/+benchmark/benchmark_module.qmlproject
- thermo/mode/+benchmark/simulation/flickControl.cpp
- thermo/mode/+benchmark/simulation/flickControl.h
- thermo/mode/+normal/benchmark_module.qmlproject
- thermo/qmlproject/thermo.qmlproject
- thermo/qmlproject/thermo_configuration_module.qmlproject
- thermo/qmlproject/thermo_configuration_module_ek-ra6m3g.qmlproject
- thermo/qmlproject/thermo_ek-ra6m3g.qmlproject
- thermo/qmlproject/thermo_mimxrt1064.qmlproject
- thermo/qmlproject/thermo_module.qmlproject
- thermo/qmlproject/thermo_module_ek-ra6m3g.qmlproject
- thermo/qmlproject/thermo_stm32.qmlproject
- thermo/rootqml/+benchmark/thermo.qml
- thermo/rootqml/+normal/thermo.qml
- thermo/src/os/baremetal/main.cpp
- thermo/static/Configuration.qml
- thermo/thermo.ar_EG.ts
- thermo/thermo.de_DE.ts
- thermo/thermo.en_GB.ts
- thermo/thermo.hi_IN.ts
- thermo/thermo.ja_JP.ts
- thermo/thermo.th_TH.ts
图像
- thermo/+big/EGYPT.png
- thermo/+big/GERMANY.png
- thermo/+big/INDIA.png
- thermo/+big/JAPAN.png
- thermo/+big/Static/popup-bg.png
- thermo/+big/THAILAND.png
- thermo/+big/UK.png
- thermo/+big/auto-card.png
- thermo/+big/auto-on.png
- thermo/+big/baseline-arrow-back.png
- thermo/+big/btn-bg-big-off.png
- thermo/+big/btn-bg-big-on.png
- thermo/+big/btn-bg-down.png
- thermo/+big/change-language.png
- thermo/+big/close.png
- thermo/+big/digitMaskBottom.png
- thermo/+big/digitMaskTop.png
- thermo/+big/dryer-on-small.png
- thermo/+big/dryer-on.png
- thermo/+big/eco-on-small.png
- thermo/+big/eco-on.png
- thermo/+big/fan-1-on-small.png
- thermo/+big/fan-1-on.png
- thermo/+big/fan-2-on-small.png
- thermo/+big/fan-2-on.png
- thermo/+big/fan-3-on-small.png
- thermo/+big/fan-3-on.png
- thermo/+big/fan-4-on-small.png
- thermo/+big/fan-4-on.png
- thermo/+big/fan-off-small.png
- thermo/+big/fan-off.png
- thermo/+big/jog-off.png
- thermo/+big/jog.png
- thermo/+big/page-indicator.png
- thermo/+big/place-back.png
- thermo/+big/power-on.png
- thermo/+big/pressed-bg-down.png
- thermo/+big/pressed-bg-up.png
- thermo/+big/qt-logo.png
- thermo/+big/radiobutton-checked-pressed.png
- thermo/+big/radiobutton-checked.png
- thermo/+big/radiobutton-disabled.png
- thermo/+big/radiobutton-pressed.png
- thermo/+big/radiobutton.png
- thermo/+big/scrollbar-off-track.png
- thermo/+big/scrollbar-temperature-track.png
- thermo/+big/selected.png
- thermo/+big/separator-line.png
- thermo/+big/slider-handle.png
- thermo/+big/stats-month.png
- thermo/+big/stats-year.png
- thermo/+big/status-small.png
- thermo/+big/streamer-on-small.png
- thermo/+big/streamer-on.png
- thermo/+big/switch-bg.png
- thermo/+big/switch-handle.png
- thermo/+big/switch-i.png
- thermo/+big/switch-o.png
- thermo/+big/temp-down-pressed.png
- thermo/+big/temp-up-pressed.png
- thermo/+big/thermo-handle.png
- thermo/+big/toggle-month.png
- thermo/+big/toggle-year.png
- thermo/+big/top-bar-shadow.png
- thermo/+small/EGYPT.png
- thermo/+small/GERMANY.png
- thermo/+small/INDIA.png
- thermo/+small/JAPAN.png
- thermo/+small/Static/popup-bg.png
- thermo/+small/THAILAND.png
- thermo/+small/UK.png
- thermo/+small/auto-card.png
- thermo/+small/auto-on.png
- thermo/+small/baseline-arrow-back.png
- thermo/+small/btn-bg-big-off.png
- thermo/+small/btn-bg-big-on.png
- thermo/+small/btn-bg-down.png
- thermo/+small/change-language.png
- thermo/+small/close.png
- thermo/+small/digitMaskBottom.png
- thermo/+small/digitMaskTop.png
- thermo/+small/dryer-on-small.png
- thermo/+small/dryer-on.png
- thermo/+small/eco-on-small.png
- thermo/+small/eco-on.png
- thermo/+small/fan-1-on-small.png
- thermo/+small/fan-1-on.png
- thermo/+small/fan-2-on-small.png
- thermo/+small/fan-2-on.png
- thermo/+small/fan-3-on-small.png
- thermo/+small/fan-3-on.png
- thermo/+small/fan-4-on-small.png
- thermo/+small/fan-4-on.png
- thermo/+small/fan-off-small.png
- thermo/+small/fan-off.png
- thermo/+small/jog-off.png
- thermo/+small/jog.png
- thermo/+small/page-indicator.png
- thermo/+small/place-back.png
- thermo/+small/popup-bg.png
- thermo/+small/power-on.png
- thermo/+small/pressed-bg-down.png
- thermo/+small/pressed-bg-up.png
- thermo/+small/qt-logo.png
- thermo/+small/radiobutton-checked-pressed.png
- thermo/+small/radiobutton-checked.png
- thermo/+small/radiobutton-pressed.png
- thermo/+small/radiobutton.png
- thermo/+small/scrollbar-off-track.png
- thermo/+small/scrollbar-temperature-track.png
- thermo/+small/selected.png
- thermo/+small/separator-line.png
- thermo/+small/slider-handle.png
- thermo/+small/stats-month.png
- thermo/+small/stats-year.png
- thermo/+small/status-small.png
- thermo/+small/streamer-on-small.png
- thermo/+small/streamer-on.png
- thermo/+small/switch-bg.png
- thermo/+small/switch-handle.png
- thermo/+small/switch-i.png
- thermo/+small/switch-o.png
- thermo/+small/temp-down-pressed.png
- thermo/+small/temp-up-pressed.png
- thermo/+small/thermo-handle.png
- thermo/+small/toggle-month.png
- thermo/+small/toggle-year.png
- thermo/+small/top-bar-shadow.png
- thermo/SparkFE/+big/popup-bg.png
- thermo/SparkFE/+small/popup-bg.png
- thermo/StaticFE/+big/popup-bg.png
- thermo/StaticFE/+small/popup-bg.png
- thermo/images/card-back-bottomleft.png
- thermo/images/card-back-bottomright.png
- thermo/images/card-back-topleft.png
- thermo/images/card-back-topright.png
- thermo/images/inner-circle.png
- thermo/weather/+big/w_01.png
- thermo/weather/+big/w_02.png
- thermo/weather/+big/w_03.png
- thermo/weather/+big/w_04.png
- thermo/weather/+big/w_05.png
- thermo/weather/+big/w_06.png
- thermo/weather/+big/w_07.png
- thermo/weather/+small/w_01.png
- thermo/weather/+small/w_02.png
- thermo/weather/+small/w_03.png
- thermo/weather/+small/w_04.png
- thermo/weather/+small/w_05.png
- thermo/weather/+small/w_06.png
- thermo/weather/+small/w_07.png
在某些Qt许可证下可用。
了解详情。