このページでは

C

Qt Quick ウルトラライトサーモスタットのデモ

Qt Quick Ultraliteを使って作られた純粋なQMLベースのアプリケーションのデモ。

概要

この例では、開発者が生産準備の整ったアプリケーションに取り組む際に直面する可能性のある複数の側面を紹介します:

  • 1つのアプリケーションで異なるディスプレイ解像度を扱う
  • 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モジュールは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
}

ルートオブジェクトがインスタンス化され、Component.onCompleted シグナルがトリガーされると、ルート QML ファイルrootqml/+benchmark/thermo.qml で録画を開始します。

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 ライセンスの下で利用可能です。
詳細はこちら。