このページでは

C

Qt Quick Ultraliteサーモスタットのデモ

Qt Quick Ultralite を使用して構築された、純粋な QML ベースのアプリケーションを実演します。

概要

このサンプルでは、本番環境向けのアプリケーション開発において開発者が直面する可能性のある、以下の複数の側面を紹介します:

  • 単一のアプリケーション内での、ターゲットとなるさまざまなディスプレイ解像度の処理
  • Qt Quick Ultraliteで構築されたアプリケーションの翻訳(英語、ドイツ語、日本語、アラビア語、タイ語、ヒンディー語)
  • 異なる単位(メートル法とインペリアル法)を使用したアプリケーションのローカライズ
ベンチマークモード

ベンチマークモードでは、アプリケーションはあらかじめ定義された30秒間実行され、30秒間のインターバル終了時にパフォーマンス指標が画面に表示されます。Qt Quick Ultralite CoreライブラリがQUL_ENABLE_PERFORMANCE_CONSOLE_OUTPUT=ON でビルドされている場合、同じ結果がシリアルコンソールにも表示されます。

テスト終了時には、以下のパフォーマンス指標が表示されます:

パラメータ説明
1総フレーム数記録期間中のフレーム総数。
2平均FPS録画期間中に測定された1秒あたりの平均フレーム数。
3最小FPS録画中に記録された1秒あたりのフレーム数の最小値。
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 moduleは、測定の開始と停止を可能にするQulPerf オブジェクトを提供します。
  • Benchmark このモジュールは、benchmark_module.qmlproject ファイルによって提供されます。フリック操作のためのタッチジェスチャーをシミュレートするメソッドを提供します。
  • Qt Quick Ultralite Profiling このモジュールは、アプリケーションのユーザーインターフェース上にパフォーマンス指標を表示するための画面オーバーレイ `QulPerfOverlay ` を提供します。

ルート QML ファイルに、ベンチマーク結果用の `QulPerfOverlay ` QML オブジェクトを追加してください。このオーバーレイは、30 秒後に `benchmarkTimer ` がトリガーされると表示されます。

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およびPlatformライブラリを、QUL_ENABLE_PERFORMANCE_LOGGING=ON およびQUL_ENABLE_HARDWARE_PERFORMANCE_LOGGING=ON でビルドする必要があります。

ファイルのバリエーション

サーモスタットのデモには小型UI用およびベンチマークモード用のファイルバリアントとセレクタが含まれています。ベンチマークモード用のソースをエクスポートするには、「"benchmark" 」ファイルセレクタを適用してください。小型UIバリアント用のソースをエクスポートするには、「"small" 」ファイルセレクタを使用してください。

qmlprojectexporter --selector benchmark,small demos/thermo/qmlproject/thermo.qmlproject

CMake を使用してビルドする場合、これらのセレクタはすでに考慮されており、前述のように通常モードとベンチマークモードのターゲットが生成されます。

ターゲットプラットフォーム

スクリーンショット

小画面向けサーモスタットデモ

英語音声付きの小型画面サーモスタットのデモ。

アラビア語対応の小型画面サーモスタットのデモ。

言語選択ダイアログが表示された、小型画面のサーモスタットのデモ。

大画面向けサーモスタットデモ

英語による大画面サーモスタットのデモ。

アラビア語対応の大画面サーモスタットのデモ。

言語選択ダイアログが表示された大画面サーモスタットのデモ。

ファイル:

画像:

特定のQtライセンスの下で利用可能です。
詳細はこちらをご覧ください。