QQmlAbstractUrlInterceptor Class
permet de contrôler le chargement des fichiers QML. Plus d'informations...
| En-tête : | #include <QQmlAbstractUrlInterceptor> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Qml)target_link_libraries(mytarget PRIVATE Qt6::Qml) |
| qmake : | QT += qml |
Types publics
| enum | DataType { QmldirFile, JavaScriptFile, QmlFile, UrlString } |
Fonctions publiques
| QQmlAbstractUrlInterceptor() | |
| virtual | ~QQmlAbstractUrlInterceptor() |
| virtual QUrl | intercept(const QUrl &url, QQmlAbstractUrlInterceptor::DataType type) = 0 |
Description détaillée
QQmlAbstractUrlInterceptor est une interface qui peut être utilisée pour modifier les URL avant qu'elles ne soient utilisées par le moteur QML. Cette interface est principalement utile pour modifier les URL de fichiers en d'autres URL de fichiers, par exemple pour sélectionner des ressources graphiques différentes pour la plate-forme actuelle.
Les URL relatives sont interceptées après avoir été résolues par rapport au chemin de fichier du contexte QML actuel. L'interception des URL se produit également après la définition du chemin de base d'un fichier QML chargé. Cela signifie que le contenu chargé pour ce fichier QML utilise l'URL interceptée, mais qu'à l'intérieur du fichier, l'URL pré-interceptée est utilisée pour résoudre les chemins relatifs. Cela permet d'intercepter le chargement d'un fichier .qml sans qu'il soit nécessaire d'insérer un chemin relatif différent dans tous les chemins (ou types locaux) à l'intérieur du contenu intercepté.
Par rapport à setNetworkAccessManagerFactory, QQmlAbstractUrlInterceptor affecte toutes les URL et tous les chemins, y compris les fichiers locaux et les fichiers de ressources intégrés. QQmlAbstractUrlInterceptor est synchrone et, pour les fichiers asynchrones, doit renvoyer une URL avec un schéma asynchrone (tel que http ou un schéma personnalisé géré par votre propre QNetworkAccessManager). Vous pouvez utiliser un QQmlAbstractUrlInterceptor pour transformer les URL de fichiers en URL en réseau gérées par votre propre QNetworkAccessManager.
Pour mettre en œuvre la prise en charge d'un schéma en réseau personnalisé, voir setNetworkAccessManagerFactory.
Type de membre Documentation
enum QQmlAbstractUrlInterceptor::DataType
Spécifie l'endroit où l'interception d'URL a lieu.
Comme QML charge des fichiers qmldir pour localiser les types, deux URL sont impliquées dans le chargement d'un type QML. L'URL du qmldir (éventuellement implicite) utilisé pour localiser le type et l'URL du fichier qui définit le type. L'interception des deux URL conduit à un remplacement d'URL complexe ou à un double remplacement d'URL pour le même fichier.
| Constante | Valeur | Description |
|---|---|---|
QQmlAbstractUrlInterceptor::QmldirFile | 2 | L'URL interceptée est celle d'un fichier Qmldir. L'interception de ce fichier, mais pas de QmlFile, permet de remplacer des sous-arbres entiers. |
QQmlAbstractUrlInterceptor::JavaScriptFile | 1 | L'URL interceptée est une importation pour un fichier Javascript. |
QQmlAbstractUrlInterceptor::QmlFile | 0 | L'URL interceptée est celle d'un fichier Qml. L'interception de ce fichier, mais pas du fichier Qmldir, laisse le répertoire de base d'un fichier QML intact et agit comme si l'on remplaçait le fichier par un autre. |
QQmlAbstractUrlInterceptor::UrlString | 0x1000 | L'URL interceptée est une propriété url dans un fichier QML et n'est pas utilisée pour charger un fichier via le moteur. |
Documentation des fonctions membres
[constexpr noexcept] QQmlAbstractUrlInterceptor::QQmlAbstractUrlInterceptor()
Constructeur pour QQmlAbstractUrlInterceptor.
[virtual constexpr noexcept] QQmlAbstractUrlInterceptor::~QQmlAbstractUrlInterceptor()
Destructeur pour QQmlAbstractUrlInterceptor.
[pure virtual] QUrl QQmlAbstractUrlInterceptor::intercept(const QUrl &url, QQmlAbstractUrlInterceptor::DataType type)
Une fonction virtuelle pure qui permet d'intercepter l'url url. La valeur renvoyée est considérée comme la nouvelle valeur de l'url. Le type d'url interceptée est donné par la variable type.
Votre implémentation de cette fonction doit être à l'épreuve des threads, car elle peut être appelée par plusieurs threads en même temps.
© 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.