Qt Qml
Qt Qml モジュールは、QML 言語を用いたアプリケーションやライブラリを開発するための フレームワークを提供します。Qt Qml モジュールでは、言語とエンジンのインフラストラクチャを定義・実装し、アプリケーション開発者がカスタムの QML タイプやモジュールを登録したり、QML コードと JavaScript や C++ を統合したりするための API を提供しています。Qt Qml モジュールは、QML API とC++ API の両方を提供します。
モジュールの利用
QML API
モジュールの QML 型はQtQml
のインポートから利用できます。この型を使用するには、.qml ファイルに以下の import 文を追加してください:
import QtQml
Qt Qml モジュールには、QML フレームワークと、アプリケーションで使用される重要な QML 型が含まれています。Qt Qml モジュールには、QML フレームワークと、アプリケーションで使用される重要な QML 型が含まれています。
Qt Qml モジュールのQML API には、多くのQML オブジェクト型、QML 値型、名前空間が用意されています。
C++ API
Qt モジュールの C++ API を使用するには、モジュール・ライブラリを直接リンクするか、他の依存関係を通 してリンクする必要があります。CMakeやqmake などのビルドツールには、このための専用サポートが用意されています。
C++ APIには、使い慣れるべき重要なクラスがいくつか含まれています。また、JavaScriptの値を保持するための型も提供されています。
CMakeでビルドする
find_package()
コマンドを使って、Qt6
パッケージの中から必要なモジュール・コンポーネントを探します:
find_package(Qt6 REQUIRED COMPONENTS Qml)
target_link_libraries(mytarget PRIVATE Qt6::Qml)
詳しくはCMake によるビルドの概要を参照してください。
QMLでないライブラリに外国のQML型をサポートするには、QmlIntegration
:
find_package(Qt6 REQUIRED COMPONENTS QmlIntegration) target_link_libraries(mytarget PRIVATE Qt6::QmlIntegration)
詳細はqt6_generate_foreign_qml_typesを参照してください。
qmake でのビルド
モジュールをqmakeでビルドするように設定するには、プロジェクトの.proファイルにQT
変数の値としてモジュールを追加します:
QT += qml
QML型とQMLモジュールの登録
QMLで使用する型を登録するためには、まずCMakeのqt_add_qml_moduleを使って QMLモジュールを定義する必要があります。そして、新しいモジュールにC++ヘッダを追加し、その中でQMLに公開する型を定義します。
エンジンの調整
QMLエンジンの振る舞いをカスタマイズするためのツマミはいくつもあります。JavaScriptエンジンの設定のページには、そのために使用できる環境変数が列挙されています。QML Disk Cacheの説明では、QMLコンポーネントのコンパイルとロード方法に関するオプションについて説明しています。
記事とガイド
これらの記事には、Qt Qml に関する情報が含まれています。
リファレンス
ライセンスと帰属
Qt Qml はThe Qt Company の商用ライセンスで利用できます。また、フリーソフトウェアライセンスでも提供されています。Qt 5.4 以降、これらのフリーソフトウェアライセンスはGNU Lesser General Public License, version 3 またはGNU General Public License, version 2 です。詳細はQt ライセンスを参照してください。
さらに、Qt 6.8.0のQt Qmlは、以下の寛容なライセンスの下で、サードパーティモジュールを含むことができます:
BSD 2条項「簡易」ライセンス |
©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。