QMLとJavaScriptの統合

QML言語ではJSONに似た構文を使用し、様々な式やメソッドをJavaScriptの関数として定義することができます。また、JavaScriptファイルをインポートし、インポートされた機能を利用することもできます。

これにより、開発者やデザイナーはJavaScriptの知識を活用し、ユーザーインターフェースやアプリケーションロジックを迅速に開発することができます。

JavaScript表現

QMLはJavaScriptと深く統合されており、シグナルハンドラや メソッドをJavaScriptで定義することができます。QMLのもう一つの中核的な機能として、JavaScriptで定義されたプロパティバインディングを使ってオブジェクトのプロパティ間の関係を指定し、強制することができます。

QML での JavaScript 式の使い方については、QML ドキュメントの JavaScript 式を参照してください。

JavaScriptによる動的なQMLオブジェクトの生成

QML では、JavaScript から動的にオブジェクトを生成することができます。これは、オブジェクトのインスタンス化を必要なときまで遅らせ、 アプリケーションの起動時間を短縮するのに便利です。また、ビジュアルオブジェクトを動的に生成し、ユーザー入力やその他のイベントに反応してシーンに追加することもできます。この機能は主に2つの方法で使用できます。

オブジェクトの動的生成を使って、JavaScriptから命令的にオブジェクトを動的に生成することができます。これは、QMLをアプリケーションのスクリプト言語として使用する場合などに便利です。

注意: ユーザーインターフェースを作成する場合、オブジェクトを動的に作成する方法としては、QMLエンジンやツールとの統合性を考慮し、宣言的な構造を用いることが望ましいでしょう。この機能を実現するために、Loader,Instantiator,Repeater のような様々な型が存在します。

JavaScriptリソース

JavaScript関数で定義されたアプリケーションロジックは、JavaScriptリソースとして知られる個別のJavaScriptファイルに分離することができます。JavaScriptリソースには、セマンティクスが異なるいくつかの種類があります。

QMLのJavaScriptリソースの定義については、「Defining JavaScript Resources In QML」を参照してください。

JavaScriptのインポート

QMLドキュメントはJavaScriptリソースをインポートすることができ、JavaScriptリソースはQMLモジュールと同様に他のJavaScriptリソースをインポートすることができます。これにより、アプリケーション開発者はアプリケーションロジックをモジュール化された自己完結型のファイルとして提供することができます。

JavaScriptリソースのインポート方法や、インポートしたリソースの機能の使い方については、「JavaScriptリソースのインポート」を参照してください。

JavaScript ホスト環境

QMLエンジンが提供するJavaScript環境は、ウェブブラウザが提供するJavaScript環境と若干の違いがあります。また、QMLエンジンは、JavaScript開発者には馴染みのない様々なオブジェクトをルートコンテキストに提供します。

これらの制限や拡張については、QMLエンジンが提供するJavaScriptホスト環境の説明の中に記述されています。

また、JavaScript エンジンが採用しているメモリ管理についても詳しく説明しています。

JavaScript エンジンの設定

特定の使用例では、JavaScript エンジンがメモリの処理や JavaScript のコンパイルに使用するパラメータのいくつかをオーバーライドしたくなるかもしれません。これらのパラメータの詳細については、JavaScript エンジンの設定を参照してください。

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