Qt Qml モジュールが提供する重要な C++ クラス
Qt Qmlモジュールは、QML フレームワークを実装する C++ クラスを提供します。クライアントは、これらのクラスを使って QML ランタイムと対話したり (例えば、データを注入したり、オブジェクトのメソッドを呼び出したり)、QML ドキュメントからオブジェクトの階層をインスタンス化したりすることができます。Qt Qml モジュールでは、ここに挙げたクラス以外にも多くの C++ API を提供していますが、 ここに挙げたクラスは QML ランタイムの基礎となるものであり、QML のコアとなる概念です。
QMLランタイム
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アプリケーションの作成方法について説明します:
©2024 The Qt Company Ltd. 本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。