QMLとJavaScriptの統合
QML言語はJSONに似た構文を採用しており、さまざまな式やメソッドをJavaScript関数として定義することができます。また、JavaScriptファイルをインポートし、それらのインポートが提供する機能を利用することも可能です。
これにより、開発者やデザイナーは、JavaScriptに関する知識を活用して、ユーザーインターフェースとアプリケーションロジックの両方を迅速に開発することができます。
JavaScript 式
QML は JavaScript と深く統合されており、シグナルハンドラ やメソッドをJavaScript で定義することができます。QML のもう 1 つの主要な機能は、プロパティバインディングを使用してオブジェクトのプロパティ間の関係を指定・強制できることであり、これも JavaScript を使用して定義されます。
QML での JavaScript 式の使用に関する詳細については、QML ドキュメント内の「JavaScript 式」というタイトルのドキュメントページを参照してください。
JavaScriptからの動的なQMLオブジェクトの作成
QMLは、JavaScript内からのオブジェクトの動的生成をサポートしています。これは、オブジェクトのインスタンス化を必要な時まで遅らせることで、アプリケーションの起動時間を短縮するのに役立ちます。また、ユーザーの入力やその他のイベントに応じて、ビジュアルオブジェクトを動的に生成し、シーンに追加することも可能です。この機能は主に2つの方法で利用できます。
オブジェクトの動的生成機能を使用し、JavaScript から命令型の手法でオブジェクトを動的に生成できます。これは、例えば QML をアプリケーションのスクリプト言語として使用する場合に役立ちます。
注:ユーザーインターフェースを作成する場合 、オブジェクトを動的に生成する推奨される方法は、宣言型構文を使用することです。これらはQMLエンジンやツール群との統合性が最も高いためです。この機能を実現するための各種型として、Loader 、Instantiator 、Repeater などがあります。
JavaScriptリソース
JavaScript 関数で定義されたアプリケーションロジックは、「JavaScript リソース」と呼ばれる個別の JavaScript ファイルに分離することができます。JavaScript リソースにはいくつかの種類があり、それぞれ意味合いが異なります。
QML用のJavaScript リソースの定義に関する詳細については、「QML でのJavaScript リソースの定義」というドキュメントページを参照してください。
JavaScript のインポート
QMLドキュメントはJavaScriptリソースをインポートでき、またJavaScriptリソースは他のJavaScriptリソースやQMLモジュールをインポートすることもできます。これにより、アプリケーション開発者は、モジュール化された自己完結型のファイルでアプリケーションロジックを提供できるようになります。
JavaScriptリソースのインポート方法およびそれらが提供する機能の使用方法の詳細については、「JavaScriptリソースのインポート」というタイトルのドキュメントページを参照してください。
JavaScript ホスト環境
QML エンジンは、Web ブラウザが提供する JavaScript 環境とは若干異なる JavaScript 環境を提供します。この環境で実行されるコードには特定の制限が適用され、QML エンジンはルートコンテキストに、JavaScript 開発者には馴染みのないさまざまなオブジェクトを提供します。
これらの制限や拡張機能については、QML エンジンが提供するJavaScript ホスト環境の説明に記述されています。
また、JavaScript エンジンで採用されているメモリ管理についても、詳細な説明があります。
JavaScript エンジンの設定
特定のユースケースでは、JavaScript エンジンがメモリ処理や JavaScript のコンパイルに使用するパラメータの一部を上書きしたい場合があります。これらのパラメータに関する詳細については、「JavaScript エンジンの設定」を参照してください。
アプリケーションをスクリプト化可能にする
Qt Qml ドキュメント内での JavaScript の使用に加え、Qt では C++ アプリケーションに JavaScript エンジンを組み込んで、アプリケーションをスクリプト対応にすることもできます。これにより、アプリケーションを再コンパイルすることなく、JavaScript を使用してアプリケーションの機能を拡張することができます。
C++ アプリケーションでの JavaScript エンジンの使用に関する詳細情報(QObject インスタンスをスクリプトから利用可能にする方法やセキュリティ上の考慮事項など)については、「アプリケーションをスクリプト対応にする」を参照してください。
© 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.