Qt Qml モジュールが提供する重要なC++クラス
この Qt Qml モジュールは、QMLフレームワークを実装するC++クラスを提供します。クライアントはこれらのクラスを使用して、QMLランタイムとやり取りしたり(例えば、データの注入やオブジェクトへのメソッド呼び出しなど)、QMLドキュメントからオブジェクトの階層をインスタンス化したりすることができます。Qt Qml モジュールは、ここに挙げたクラス以外にも多くのC++ APIを提供していますが、ここに挙げたクラスはQML Runtimeの基礎とQMLの中核となる概念を構成しています。
QML Runtime
C++のエントリポイントを持つ典型的なQMLアプリケーションでは、QQmlEngine をインスタンス化し、QQmlComponent を使用してQMLドキュメントを読み込みます。 エンジンはデフォルトの `QQmlContext ` を提供しており、これは QML ドキュメントで定義された関数や式を評価するために使用される最上位の評価コンテキストとなります。ドキュメントの読み込み中にエラーが発生しなかった場合、QML ドキュメントで定義されたオブジェクト階層は、QQmlComponent インスタンスの `create()` 関数を呼び出すことでインスタンス化されます。
クライアントは、プロパティやオブジェクトをコンテキストに注入することで、エンジンによって提供されるQQmlContext を変更したい場合があります。クライアントは、QQmlEngine::rootContext()関数を呼び出すことで、最上位のコンテキストにアクセスできます。
オブジェクトのインスタンス化後、クライアントは通常、制御をアプリケーションのイベントループに渡します。これにより、ユーザー入力イベント(マウスクリックなど)がアプリケーションに配信され、処理されるようになります。
注: Qt Quick モジュールは 、QML アプリケーションを表示するための QML Runtime とビジュアルウィンドウを提供する、便利なクラスQQuickView を提供しています。
QQmlEngine クラス
QQmlEngine クラスは、QML ドキュメントで定義されたオブジェクトの階層を管理できるエンジンを提供します。このクラスは、式が評価されるルート QML コンテキストを提供し、必要に応じてオブジェクトのプロパティが正しく更新されるようにします。
QQmlEngine を使用すると、管理対象のすべてのオブジェクトに適用されるグローバル設定を構成できます。例えば、ネットワーク通信に使用するQNetworkAccessManager や、永続ストレージに使用するファイルパスなどです。
QQmlEngine クラスが提供する機能や、アプリケーション内での使用方法に関する詳細については、QQmlEngine クラスのドキュメントを参照してください。
QQmlContext クラス
QQmlContext クラスは、オブジェクトのインスタンス化および式の評価のためのコンテキストを提供します。すべてのオブジェクトは特定のコンテキスト内でインスタンス化され、アプリケーションの実行中に評価されるすべての式も、特定のコンテキスト内で評価されます。このコンテキストは、シンボルの解決方法を定義し、それによって式がどの値に対して演算を行うかを決定します。
QQmlContext のプロパティを追加または削除してオブジェクトの評価コンテキストを変更する方法、およびオブジェクトのコンテキストにアクセスする方法に関する詳細については、QQmlContext クラスのドキュメントを参照してください。
動的なオブジェクトのインスタンス化と式評価
動的なオブジェクトのインスタンス化と動的な式の評価は、いずれもQMLの中核となる概念です。QMLドキュメントでは、QQmlComponent を使用して実行時にインスタンス化できるオブジェクト型が定義されています。QQmlComponent クラスのインスタンスは、C++で直接作成することも、命令型QMLコード内のQt.createComponent()関数を介して作成することもできます。 C++では、QQmlExpression クラスを使用して任意の式を計算することができ、そのような式はQMLコンテキストと直接やり取りすることができます。
QQmlComponent クラス
QQmlComponent クラスは、QMLドキュメントを読み込むために使用できます。QMLドキュメントで定義されたオブジェクトの階層をインスタンス化するには、QQmlEngine が必要です。
QQmlComponent の使用方法に関する詳細については、QQmlComponent クラスのドキュメントを参照してください。
QQmlExpression クラス
QQmlExpression クラスは、特定のQML評価コンテキストを使用して、クライアントがC++からJavaScript式を評価する手段を提供します。これにより、クライアントは、例えばIDによってQMLオブジェクトにアクセスできるようになります。評価結果はQVariant として返され、変換ルールはQMLエンジンによって定義されます。
アプリケーション内でQQmlExpression を使用する方法に関する詳細については、QQmlExpression クラスのドキュメントを参照してください。
QMLアプリケーション内でのクラスの使用方法
これらのページでは、C++クラスと連携するQMLアプリケーションの作成方法について説明しています:
© 2026 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.