QQmlAbstractUrlInterceptor Class
QMLファイルの読み込みを制御できます。詳細...
| ヘッダー: | #include <QQmlAbstractUrlInterceptor> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
| qmake: | QT += qml |
パブリック型
| enum | DataType { QmldirFile, JavaScriptFile, QmlFile, UrlString } |
パブリック関数
| QQmlAbstractUrlInterceptor() | |
| virtual | ~QQmlAbstractUrlInterceptor() |
| virtual QUrl | intercept(const QUrl &url, QQmlAbstractUrlInterceptor::DataType type) = 0 |
詳細な説明
QQmlAbstractUrlInterceptor は、QML エンジンによって URL が使用される前にその URL を変更するために使用できるインターフェースです。これは主に、現在のプラットフォーム用に異なるグラフィックアセットを選択するなど、あるファイルの URL を別のファイルの URL に変更する場合に役立ちます。
相対 URL は、現在の QML コンテキストのファイルパスに対して解決された後にインターセプトされます。URL のインターセプトは、読み込まれた QML ファイルのベースパスが設定された後にも行われます。つまり、その QML ファイルのために読み込まれたコンテンツではインターセプトされた URL が使用されますが、ファイル内部では相対パスの解決にインターセプト前の URL が使用されます。 これにより、インターセプトされたコンテンツ内のすべてのパス(またはローカル型)に別の相対パスを挿入する必要なく、.qml ファイルの読み込みをインターセプトすることが可能になります。
setNetworkAccessManagerFactoryと比較して、QQmlAbstractUrlInterceptorは、ローカルファイルや埋め込みリソースファイルを含め、すべてのURLおよびパスに影響を与えます。 QQmlAbstractUrlInterceptorは同期処理であり、非同期ファイルの場合は、非同期スキーマ(httpや、独自のQNetworkAccessManager で処理されるカスタムスキーマなど)を持つURLを返す必要があります。QQmlAbstractUrlInterceptorを使用すると、ファイルURLを、独自のQNetworkAccessManager で処理されるネットワークURLに変更することができます。
カスタムネットワークスキームのサポートを実装するには、setNetworkAccessManagerFactory を参照してください。
メンバ型のドキュメント
enum QQmlAbstractUrlInterceptor::DataType
URLのインターセプトが行われる場所を指定します。
QMLは型の検索のためにqmldirファイルをロードするため、QML型のロードには2つのURLが関係します。 タイプを特定するために使用される(暗黙的な場合もある)qmldirのURLと、そのタイプを定義するファイルのURLです。両方をインターセプトすると、複雑なURL置換が発生するか、同じファイルに対してURL置換が二重に行われることになります。
| 定数 | 値 | 説明 |
|---|---|---|
QQmlAbstractUrlInterceptor::QmldirFile | 2 | インターセプトされる URL は Qmldir ファイル用のものです。QmlFile ではなくこれをインターセプトすることで、サブツリー全体を差し替えることが可能になります。 |
QQmlAbstractUrlInterceptor::JavaScriptFile | 1 | インターセプトされた URL は、JavaScript ファイルのインポート指定です。 |
QQmlAbstractUrlInterceptor::QmlFile | 0 | インターセプトされているURLは、QMLファイルへのものです。Qmldirファイルではなくこれをインターセプトすると、QMLファイルのベースディレクトリは変更されず、ファイルが別のファイルに置き換えられるのと同じような動作になります。 |
QQmlAbstractUrlInterceptor::UrlString | 0x1000 | インターセプトされているURLは、QMLファイル内のurlプロパティであり、エンジンを介してファイルをロードするために使用されているものではありません。 |
メンバ関数のドキュメント
[constexpr noexcept default] QQmlAbstractUrlInterceptor::QQmlAbstractUrlInterceptor()
QQmlAbstractUrlInterceptor のコンストラクタ。
[virtual constexpr noexcept default] QQmlAbstractUrlInterceptor::~QQmlAbstractUrlInterceptor()
QQmlAbstractUrlInterceptor のデストラクタ。
[pure virtual] QUrl QQmlAbstractUrlInterceptor::intercept(const QUrl &url, QQmlAbstractUrlInterceptor::DataType type)
url をインターセプトできる純粋仮想関数です。戻り値は、url の新しい値として採用されます。インターセプトされる url の型は、type 変数によって指定されます。
この関数の実装は、複数のスレッドから同時に呼び出される可能性があるため、スレッドセーフでなければなりません。
© 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.