このページでは

C

Qt Quick ウルトラライト・ウォッチ・デモ

ウェアラブルデバイス用アプリケーションにおけるQMLとC++の簡単な統合のデモ。

概要

この腕時計の例は、Qt Quick Ultralite を使って作られたウェアラブル・アプリケーションのデモです。QMLと基本的なC++を使用しています。このアプリケーションは、タッチ操作に対応した小型ディスプレイを搭載した機器での使用を想定しています。また、基本的なジェスチャー認識を行い、異なるウォッチシールドを切り替えることができます。

ベンチマーク・モード

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

以下のパフォーマンス・メトリクスがテスト終了時に表示されます:

パラメータパラメータ
1合計フレーム数記録間隔内の総フレーム数。
2平均FPS記録インターバル中に測定された1秒あたりの平均フレーム数。
3最小FPS録画中にキャプチャされた1秒あたりの最小フレーム数。
4最大ヒープ使用量アプリケーションが起動してから記録された最大ヒープ使用量(バイト)。
5最大スタック使用量アプリケーション起動時から記録されている最大スタック使用量(バイト)。
6平均CPU負荷記録間隔を平均したパーセント値での CPU 負荷。

ベンチマークモードは、watch_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/watch.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 でビルドされている必要があります。

ファイルバリアント

ウォッチデモには、ベンチマークモード用とデスクトッププラットフォーム用のファイルバリアントとセレクタが含まれています。ベンチマーク・モード用のソースをエクスポートするには、"benchmark" ファイル・セレクタを適用します。デスクトップ・プラットフォーム用にソースをエクスポートするには、"desktop" ファイル・セレクタを使用します。

qmlprojectexporter --selector benchmark,desktop demos/watch/qmlproject/mcu_watch.qmlproject

CMakeでビルドする場合、セレクタはすでに考慮され、上記のように通常のターゲットとベンチマークターゲットが作成されます。

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

スクリーンショット

ファイル

画像


詳細はこちら。