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は、現在の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です。この2つのURLをインターセプトすることで、複雑なURLの置換や同じファイルに対する2重の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]
QQmlAbstractUrlInterceptor::QQmlAbstractUrlInterceptor()
QQmlAbstractUrlInterceptor のコンストラクタです。
[virtual constexpr noexcept]
QQmlAbstractUrlInterceptor::~QQmlAbstractUrlInterceptor()
QQmlAbstractUrlInterceptor のデストラクタ。
[pure virtual]
QUrl QQmlAbstractUrlInterceptor::intercept(const QUrl &url, QQmlAbstractUrlInterceptor::DataType type)
純粋な仮想関数で、url をインターセプトすることができます。 返される値は、urlの新しい値とみなされます。インターセプトされるurlのタイプは、type 変数で与えられます。
この関数は複数のスレッドから同時に呼ばれる可能性があるため、 スレッドセーフでなければなりません。
© 2025 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.