Qt Qml モジュールが提供する重要な C++ クラス
この Qt QmlモジュールはQMLフレームワークを実装するC++クラスを提供します。クライアントはこれらのクラスを使ってQMLランタイムとやりとりしたり(例えば、データの注入やオブジェクトに対するメソッドの呼び出しなど)、QML文書からオブジェクトの階層をインスタンス化したりすることができます。Qt Qml モジュールは、ここに挙げたクラス以外にも多くのC++ APIを提供していますが、 ここに挙げたクラスは、QMLランタイムの基礎とQMLのコアとなる概念を提供するものです。
QML Runtime
C++のエントリーポイントを持つ典型的なQMLアプリケーションは、QQmlEngine をインスタンス化し、QQmlComponent を使ってQML文書を読み込みます。エンジンはデフォルトのQQmlContext 。このコンテキストはQMLドキュメントで定義された関数や式を評価するためのトップレベルの評価コンテキストとなります。QML 文書で定義されたオブジェクト階層は、QQmlComponent インスタンスのcreate() 関数を呼び出すことでインスタンス化されます。
クライアントは、エンジンが提供するQQmlContext を変更し、 プロパティやオブジェクトをコンテキストに注入することができます。クライアントは、QQmlEngine::rootContext ()関数を呼び出して、トップレベルのコンテキストにアクセスすることができます。
オブジェクトをインスタンス化した後、クライアントは通常、アプリケーションのイベント・ループに制御を渡し、ユーザー入力イベント(マウス・クリックなど)を配信し、アプリケーションで処理できるようにします。
注: Qt Quick モジュールには、QMLアプリケーションを表示するためのQMLランタイムとビジュアルウィンドウを提供する便利なクラスQQuickView が用意されています。
QQmlEngineクラス
QQmlEngine クラスはQML文書に定義されたオブジェクトの階層構造を管理するための エンジンです。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アプリケーションの作成方法について説明します:
© 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.