Qt Quick における重要な概念 - 便利な型

高度に動的なユーザーインターフェースでは、アプリケーション開発者はしばしばイベントに反応し、様々なレスポンスロジックをトリガーしたいと思うでしょう。QML には、バインディング、シグナル、シグナルハンドラ、動的なオブジェクトのインスタンス化など、これらの概念をサポートする機能が組み込まれています。

動的なオブジェクトのインスタンス化

QML では、QML オブジェクトを動的に生成・管理する方法をいくつか提供しています。

オブジェクトは、命令型の JavaScript コードから様々な方法で動的に生成することができます。詳しくはDynamic QML object creation from JavaScriptを参照してください。

Qt Quick では、LoaderRepeaterListViewGridViewPathView の型を提供しており、動的なオブジェクト管理もサポートしています。

アプリケーションのパフォーマンスを向上させるための動的インスタンス化と遅延初期化の使用については、パフォーマンスガイドを参照してください。

動的バインディング

プロパティのバインディングはQMLの基本的な機能です。通常、プロパティはそのバインディングで初期化されます。しかし、Binding 型とQt.binding() 関数を使うことで、クライアントは実行時に任意のオブジェクトのプロパティを動的にバインドすることができ、必要なときに(または利用可能になったときに)バインド先を変更することができます。

動的なシグナル接続

QML はシグナルのconnect() メソッドによる動的なシグナル接続をサポートしています。Qt QuickモジュールはConnections という便利な型を提供しており、静的なオブジェクト階層に属さないオブジェクトを含むシグナル接続を設定することができます。また、実行時に接続を動的に再ターゲットすることができます。これにより、アプリケーションはプログラムの状態に応じて異なるシグナル通知を異なる関数で処理することができます。

Connections インスタンスを宣言することで、クライアントは、あるオブジェクトが発するシグナルを別のオブジェクトのメソッドに動的にトリガーさせることができ、必要なときに(または利用可能になったときに)接続ターゲットを変更することができます。

タイマーベースのイベント

もう一つの一般的なユースケースは、特定のイベントが発生した後、ある指定された期間に機能をトリガーすることです。このようなタイマーベースのトリガーは、Qt Quick のTimer タイプでサポートされています。シングルショットと繰り返しタイマーの両方がサポートされています。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。