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

高度に動的なユーザーインターフェースでは、アプリケーション開発者はしばしばイベントに反応し、様々なレスポンスロジックを起動したいと思うでしょう。QMLは、バインディング、シグナルとシグナルハンドラ、動的オブジェクトのインスタンス化などを通じて、これらの概念をビルトインでサポートしていますが、Qt Quick 、様々な便利な型によって言語が提供するサポートを拡張しています。

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

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

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

Qt Quick は、 、 、 、 、 の型を提供しており、動的なオブジェクト管理もサポートしています。また、宣言的なAPIも提供しています。Loader Repeater ListView GridView PathView

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

動的バインディング

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

動的なシグナル接続

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

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

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

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

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.