このページでは

レガシーモジュール

レガシーモジュールとは、その仕様ファイル(qmldir )にモジュール識別子ディレクティブが含まれていないモジュールのことです。レガシーモジュールは、QMLのインポートパスにインストールされる(「インストール済みレガシーモジュール」として)か、クライアントによって相対インポートによって読み込まれる(「位置指定済みレガシーモジュール」として)かのいずれかになります。 クライアントは、可能であればレガシーモジュールの使用を避けることを推奨します。モジュール開発者は、レガシーモジュールではなく、識別済みモジュールを作成するようにしてください。

インストール済みのレガシーモジュール

インストール済みで識別子を持たないモジュールには、QMLエンジンによって自動的に識別子が付与されます。この暗黙的に定義された識別子は、モジュールのインストールパス(QMLインポートパスを基準とした相対パス)に等しく、ディレクトリ区切り文字がピリオドに置き換えられたものです。

QML インポートパスにインストールされた識別子なしのモジュールには、以下の意味論が適用されます:

  • クライアントは、暗黙のモジュール識別子を使用してそれをインポートできます
  • クライアントは、モジュールをインポートする際にバージョンを指定する必要があります
  • 競合する型名はQMLエンジンによって恣意的に解決され、競合の解決方法はQMLの異なるバージョン間で一貫して同じであるとは保証されません
  • 他のレガシーモジュールは、インストールされたレガシーモジュールによって提供される型定義を変更または上書きする可能性があります

特定されたレガシーモジュール

相対ディレクトリパスのインポート文を介してインポートされる、識別子を持たないモジュールは、エンジンによって「特定されたレガシーモジュール」として読み込まれます。特定されたレガシーモジュールには、以下のセマンティクスが適用されます:

  • クライアントは相対インポートパスを介してこれをインポートできる
  • クライアントがモジュールをインポートする際にバージョンを指定する必要はありません
  • インポート文においてクライアントがインポートバージョンを指定しない場合、QMLエンジンは、特定の型名の定義のどのバージョンがインポートされるかについて保証しません
  • 競合する型名は QML エンジンによって恣意的に解決され、競合の解決方法は QML の異なるバージョン間で一貫して同じであるとは保証されません
  • 他のレガシーモジュールは、検出されたレガシーモジュールによって提供される型定義を変更または上書きする可能性があります

検出されたレガシーモジュールは、ローカルファイルシステムまたはネットワーク上に存在する場合があり、ファイルシステムパスまたはネットワーク URL を指定する URL によって参照できます。

「QML モジュールの近代化」および「QML モジュールの CMake への移植」も参照してください 。

© 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.