QUrl Class
La classe QUrl offre une interface pratique pour manipuler les URL. En savoir plus...
| En-tête : | #include <QUrl> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
- Liste de tous les membres, y compris les membres hérités
- QUrl fait partie des catégories « Entrée/Sortie et réseau », « API de programmation réseau » et « Classes implicitement partagées ».
Remarque : toutes les fonctions de cette classe sont réentrantes.
Comparaisons QUrl
| Catégorie | Types comparables |
|---|---|
| faible | QUrl |
Types publics
(since 6.3) enum | AceProcessingOption { IgnoreIDNWhitelist, AceTransitionalProcessing } |
| flags | AceProcessingOptions |
| enum | ComponentFormattingOption { PrettyDecoded, EncodeSpaces, EncodeUnicode, EncodeDelimiters, EncodeReserved, …, FullyDecoded } |
| flags | ComponentFormattingOptions |
| flags | FormattingOptions |
| enum | ParsingMode { TolerantMode, StrictMode, DecodedMode } |
| enum | UrlFormattingOption { None, RemoveScheme, RemovePassword, RemoveUserInfo, RemovePort, …, NormalizePathSegments } |
| enum | UserInputResolutionOption { DefaultResolution, AssumeLocalFile } |
| flags | UserInputResolutionOptions |
Fonctions publiques
| QUrl() | |
| QUrl(const QString &url, QUrl::ParsingMode parsingMode = TolerantMode) | |
| QUrl(const QUrl &other) | |
| QUrl(QUrl &&other) | |
| ~QUrl() | |
| QUrl | adjusted(QUrl::FormattingOptions options) const |
| QString | authority(QUrl::ComponentFormattingOptions options = PrettyDecoded) const |
| void | clear() |
| QString | errorString() const |
| QString | fileName(QUrl::ComponentFormattingOptions options = FullyDecoded) const |
| QString | fragment(QUrl::ComponentFormattingOptions options = PrettyDecoded) const |
| bool | hasFragment() const |
| bool | hasQuery() const |
| QString | host(QUrl::ComponentFormattingOptions options = FullyDecoded) const |
| bool | isEmpty() const |
| bool | isLocalFile() const |
| bool | isParentOf(const QUrl &childUrl) const |
| bool | isRelative() const |
| bool | isValid() const |
| bool | matches(const QUrl &url, QUrl::FormattingOptions options) const |
| QString | password(QUrl::ComponentFormattingOptions options = FullyDecoded) const |
| QString | path(QUrl::ComponentFormattingOptions options = FullyDecoded) const |
| int | port(int defaultPort = -1) const |
| QString | query(QUrl::ComponentFormattingOptions options = PrettyDecoded) const |
| QUrl | resolved(const QUrl &relative) const |
| QString | scheme() const |
| void | setAuthority(const QString &authority, QUrl::ParsingMode mode = TolerantMode) |
| void | setFragment(const QString &fragment, QUrl::ParsingMode mode = TolerantMode) |
| void | setHost(const QString &host, QUrl::ParsingMode mode = DecodedMode) |
| void | setPassword(const QString &password, QUrl::ParsingMode mode = DecodedMode) |
| void | setPath(const QString &path, QUrl::ParsingMode mode = DecodedMode) |
| void | setPort(int port) |
| void | setQuery(const QString &query, QUrl::ParsingMode mode = TolerantMode) |
| void | setQuery(const QUrlQuery &query) |
| void | setScheme(const QString &scheme) |
| void | setUrl(const QString &url, QUrl::ParsingMode parsingMode = TolerantMode) |
| void | setUserInfo(const QString &userInfo, QUrl::ParsingMode mode = TolerantMode) |
| void | setUserName(const QString &userName, QUrl::ParsingMode mode = DecodedMode) |
| void | swap(QUrl &other) |
| CFURLRef | toCFURL() const |
| QString | toDisplayString(QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) const |
| QByteArray | toEncoded(QUrl::FormattingOptions options = FullyEncoded) const |
| QString | toLocalFile() const |
| NSURL * | toNSURL() const |
| QString | toString(QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) const |
| QString | url(QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) const |
| QString | userInfo(QUrl::ComponentFormattingOptions options = PrettyDecoded) const |
| QString | userName(QUrl::ComponentFormattingOptions options = FullyDecoded) const |
| QUrl & | operator=(QUrl &&other) |
| QUrl & | operator=(const QString &url) |
| QUrl & | operator=(const QUrl &url) |
Membres publics statiques
(since 6.3) QString | fromAce(const QByteArray &domain, QUrl::AceProcessingOptions options = {}) |
| QUrl | fromCFURL(CFURLRef url) |
| QUrl | fromEncoded(QByteArrayView input, QUrl::ParsingMode mode = TolerantMode) |
| QUrl | fromLocalFile(const QString &localFile) |
| QUrl | fromNSURL(const NSURL *url) |
| QString | fromPercentEncoding(const QByteArray &input) |
| QList<QUrl> | fromStringList(const QStringList &urls, QUrl::ParsingMode mode = TolerantMode) |
| QUrl | fromUserInput(const QString &userInput, const QString &workingDirectory = QString(), QUrl::UserInputResolutionOptions options = DefaultResolution) |
| QStringList | idnWhitelist() |
| void | setIdnWhitelist(const QStringList &list) |
(since 6.3) QByteArray | toAce(const QString &domain, QUrl::AceProcessingOptions options = {}) |
| QByteArray | toPercentEncoding(const QString &input, const QByteArray &exclude = QByteArray(), const QByteArray &include = QByteArray()) |
| QStringList | toStringList(const QList<QUrl> &urls, QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) |
Non-membres associés
| bool | operator!=(const QUrl &lhs, const QUrl &rhs) |
| QDataStream & | operator<<(QDataStream &out, const QUrl &url) |
| bool | operator==(const QUrl &lhs, const QUrl &rhs) |
| QDataStream & | operator>>(QDataStream &in, QUrl &url) |
Macros
Description détaillée
Il permet d'analyser et de construire des URL sous forme encodée ou non encodée. QUrl prend également en charge les noms de domaine internationalisés (IDN).
La manière la plus courante d’utiliser QUrl consiste à l’initialiser via le constructeur en lui transmettant un objet « QString » contenant une URL complète. Les objets QUrl peuvent également être créés à partir d’un objet « QByteArray » contenant une URL complète à l’aide de la méthode QUrl::fromEncoded(), ou de manière heuristique à partir d’URL incomplètes à l’aide de la méthode QUrl::fromUserInput(). La représentation de l’URL peut être obtenue à partir d’un objet QUrl à l’aide de la méthode QUrl::toString() ou QUrl::toEncoded().
Les URL peuvent être représentées sous deux formes : encodées ou non encodées. La représentation non encodée convient pour être affichée aux utilisateurs, mais c’est généralement la représentation encodée que l’on envoie à un serveur web. Par exemple, l'URL non encodée « http://bühler.example.com/List of applicants.xml » serait envoyée au serveur sous la forme « http://xn–bhler-kva.example.com/List%20of%20applicants.xml ».
Une URL peut également être construite élément par élément en appelant les fonctions setScheme(), setUserName(), setPassword(), setHost(), setPort(), setPath(), setQuery() et setFragment(). Certaines fonctions pratiques sont également disponibles : setAuthority() définit le nom d’utilisateur, le mot de passe, l’hôte et le port. setUserInfo() définit simultanément le nom d’utilisateur et le mot de passe.
Appelez isValid() pour vérifier si l’URL est valide. Cette vérification peut être effectuée à tout moment pendant la construction d’une URL. Si isValid() renvoie false, vous devez utiliser clear() sur l’URL avant de continuer, ou recommencer en analysant une nouvelle URL avec setUrl().
La construction d’une requête est particulièrement pratique grâce à l’utilisation de la classe ` QUrlQuery ` et de ses méthodes ` QUrlQuery::setQueryItems()`, ` QUrlQuery::addQueryItem()` et ` QUrlQuery::removeQueryItem()`. Utilisez ` QUrlQuery::setQueryDelimiters()` pour personnaliser les délimiteurs utilisés pour générer la chaîne de requête.
Pour faciliter la génération de chaînes d'URL ou de chaînes de requête encodées, il existe deux fonctions statiques appelées fromPercentEncoding() et toPercentEncoding() qui gèrent l'encodage et le décodage en pourcentage des objets QString.
fromLocalFile() construit un objet QUrl en analysant un chemin d’accès à un fichier local. toLocalFile() convertit une URL en chemin d’accès à un fichier local.
La représentation lisible par l’utilisateur de l’URL est récupérée avec toString(). Cette représentation convient pour afficher une URL à un utilisateur sous forme non encodée. La forme encodée, telle qu’elle est renvoyée par ` toEncoded()`, est quant à elle destinée à un usage interne, pour être transmise aux serveurs web, aux clients de messagerie, etc. Les deux formes sont techniquement correctes et représentent sans ambiguïté la même URL ; en effet, transmettre l’une ou l’autre au constructeur de `QUrl` ou à ` setUrl()` produira le même objet `QUrl`.
QUrl est conforme à la spécification URI de la RFC 3986 (Uniform Resource Identifier : Generic Syntax) et inclut les extensions de schéma de la RFC 1738 (Uniform Resource Locators). Les règles de conversion de casse dans QUrl sont conformes à la norme RFC 3491 (Nameprep : un profil Stringprep pour les noms de domaine internationalisés (IDN)). Il est également compatible avec la spécification des URI de fichiers de freedesktop.org, à condition que les paramètres régionaux encodent les noms de fichiers en UTF-8 (exigé par les IDN).
URL relatives vs chemins relatifs
L'appel à la méthode ` isRelative()`` renvoie si l'URL est relative ou non. Une URL relative ne comporte pas de scheme. Par exemple :
qDebug() << QUrl("main.qml").isRelative(); // true : pas de schéma
qDebug() << QUrl("qml/main.qml").isRelative(); // true: no scheme
qDebug() << QUrl("file:main.qml").isRelative(); // false: has "file" scheme
qDebug() << QUrl("file:qml/main.qml").isRelative(); // false: has "file" schemeNotez qu'une URL peut être absolue tout en contenant un chemin relatif, et inversement :
// URL absolue, chemin relatif
QUrl url("file:file.txt");
qDebug() << url.isRelative(); // false: has "file" scheme
qDebug() << QDir::isAbsolutePath(url.path()); // false: relative path
// URL relative, chemin absolu
url = QUrl("/home/user/file.txt");
qDebug() << url.isRelative(); // true: has no scheme
qDebug() << QDir::isAbsolutePath(url.path()); // true: absolute pathUne URL relative peut être résolue en la transmettant comme argument à la fonction ` resolved()`, qui renvoie une URL absolue. La fonction ` isParentOf()` permet de déterminer si une URL est la « parente » d’une autre.
Vérification des erreurs
QUrl est capable de détecter de nombreuses erreurs dans les URL lors de leur analyse ou lorsque les composants de l’URL sont définis à l’aide de méthodes de définition individuelles (telles que setScheme(), setHost() ou setPath()). Si l’analyse ou la fonction de définition aboutit, toutes les conditions d’erreur précédemment enregistrées seront ignorées.
Par défaut, les méthodes de définition de QUrl fonctionnent en mode « QUrl::TolerantMode », ce qui signifie qu’elles tolèrent certaines erreurs courantes et certaines représentations erronées des données. Une autre méthode d’analyse est le mode « QUrl::StrictMode », qui effectue des vérifications supplémentaires. Voir QUrl::ParsingMode pour une description des différences entre ces modes d’analyse.
QUrl vérifie uniquement la conformité avec la spécification des URL. Il ne cherche pas à vérifier que les URL de protocole de haut niveau respectent le format attendu par les gestionnaires ailleurs. Par exemple, les URI suivantes sont toutes considérées comme valides par QUrl, même si elles n’ont aucun sens lorsqu’elles sont utilisées :
- « http:/filename.html »
- « mailto://example.com »
Lorsque l'analyseur rencontre une erreur, il signale l'événement en faisant en sorte que ` isValid()` renvoie `false` et que ` toString()` / ` toEncoded()` renvoient une chaîne vide. S'il est nécessaire d'indiquer à l'utilisateur la raison pour laquelle l'URL n'a pas pu être analysée, la condition d'erreur peut être obtenue auprès de QUrl en appelant ` errorString()`. Notez que ce message est très technique et peut ne pas avoir de sens pour les utilisateurs finaux.
QUrl ne peut enregistrer qu’une seule condition d’erreur. Si plusieurs erreurs sont détectées, il est indéterminé laquelle sera signalée.
Conversions de caractères
Respectez ces règles pour éviter toute conversion de caractères erronée lors du traitement des URL et des chaînes de caractères :
- Lors de la création d’un objet ` QString ` contenant une URL provenant d’un ` QByteArray ` ou d’un `char*`, utilisez toujours ` QString::fromUtf8()`.
Considérations de sécurité
Traitez les URL provenant d’une source non fiable (le réseau, un fichier ou un document, une autre application ou l’utilisateur) comme des entrées malveillantes.
- Validez l’URL analysée, jamais la chaîne brute. Effectuez toute vérification de liste d’autorisation/de refus, d’origine ou de redirection sur les composants extraits par QUrl – pour une vérification d’hôte, utilisez
url.host(QUrl::FullyEncoded)– et non sur le texte d’origine. QUrl normalise les formes qui échappent à une vérification de chaîne :http://0x7f.0.0.1ethttp://2130706433donnent tous deux l’hôte127.0.0.1, ethttp://good.com\\@evil.com/donne l’hôteevil.com. UtilisezFullyEncodedplutôt que la forme décodée par défaut afin que les hôtes internationalisés (IDN) soient comparés sous leur forme ASCII et ne puissent pas être usurpés à l’aide de caractères Unicode similaires. - Utilisez la même URL analysée pour la vérification et pour la requête. Transmettre ensuite la chaîne d'origine à un autre analyseur réintroduit la divergence que la vérification avait éliminée.
- Faites particulièrement attention lorsque vous utilisez FullyDecoded pour obtenir des composants. Le résultat peut comporter des pertes, voire avoir une signification différente, selon le composant obtenu. Il peut également contenir des caractères de contrôle, notamment
NUL. Consultez Full decoding pour plus de détails.
Documentation sur les types de membres
[since 6.3] enum QUrl::AceProcessingOption
flags QUrl::AceProcessingOptions
Les options de traitement ACE déterminent la manière dont les URL sont converties vers et depuis un encodage compatible ASCII.
| Constante | Valeur | Description |
|---|---|---|
QUrl::IgnoreIDNWhitelist | 0x1 | Ignorer la liste blanche IDN lors de la conversion des URL en Unicode. |
QUrl::AceTransitionalProcessing | 0x2 | Utilise le traitement de transition décrit dans la norme UTS n° 46. Cela permet une meilleure compatibilité avec la spécification IDNA 2003. |
Par défaut, le traitement non transitoire est utilisé et les caractères non ASCII ne sont autorisés que dans les URL dont les domaines de premier niveau figurent dans la liste blanche IDN.
Cette énumération a été introduite dans Qt 6.3.
Le type `AceProcessingOptions` est un `typedef` pour ` QFlags<AceProcessingOption>`. Il stocke une combinaison OR de valeurs `AceProcessingOption`.
Voir également toAce(), fromAce() et idnWhitelist().
enum QUrl::ComponentFormattingOption
flags QUrl::ComponentFormattingOptions
Les options de mise en forme des composants définissent la manière dont les composants d'une URL seront formatés lorsqu'ils sont affichés sous forme de texte. Elles peuvent être combinées avec les options disponibles à l'adresse QUrl::FormattingOptions lorsqu'elles sont utilisées dans les méthodes toString() et toEncoded().
| Constante | Valeur | Description |
|---|---|---|
QUrl::PrettyDecoded | 0x000000 | Le composant est renvoyé sous une « forme lisible », la plupart des caractères encodés en pourcentage étant décodés. Le comportement exact de PrettyDecoded varie d’un composant à l’autre et peut également changer d’une version de Qt à l’autre. Il s’agit du comportement par défaut. |
QUrl::EncodeSpaces | 0x100000 | Conserver les espaces sous leur forme encodée (« %20 »). |
QUrl::EncodeUnicode | 0x200000 | Conserver les caractères non US-ASCII sous leur forme encodée en pourcentage UTF-8 (par exemple, « %C3%A9 » pour le point de code U+00E9, E MINUSCULE LATINE AVEC ACCENT AIGU). |
QUrl::EncodeDelimiters | 0x400000 | 0x800000 | Conserver certains délimiteurs sous leur forme encodée, telle qu’ils apparaîtraient dans l’URL lorsque celle-ci est représentée sous forme de texte. Les délimiteurs concernés par cette option varient d’un composant à l’autre. Ce drapeau n’a aucun effet dans toString() ou toEncoded(). |
QUrl::EncodeReserved | 0x1000000 | Conserver sous leur forme encodée les caractères US-ASCII non autorisés dans l’URL par la spécification. C’est le comportement par défaut dans toString() et toEncoded(). |
QUrl::DecodeReserved | 0x2000000 | Décoder les caractères US-ASCII dont la spécification d’URL interdit la présence dans l’URL. C’est le comportement par défaut des méthodes get des composants individuels. |
QUrl::FullyEncoded | EncodeSpaces | EncodeUnicode | EncodeDelimiters | EncodeReserved | Conserver tous les caractères sous leur forme correctement encodée, telle que ce composant apparaîtrait dans une URL. Lorsqu’il est utilisé avec toString(), cela produit une URL entièrement conforme au format QString, exactement identique au résultat de toEncoded() |
QUrl::FullyDecoded | FullyEncoded | DecodeReserved | 0x4000000 | Tente de décoder autant que possible. Pour les composants individuels de l’URL, ce mode décode toutes les séquences d’encodage en pourcentage, y compris les caractères de contrôle (U+0000 à U+001F) et les séquences UTF-8 présentes sous forme d’encodage en pourcentage. L’utilisation de ce mode peut entraîner une perte de données ; voir ci-dessous pour plus d’informations. |
Les valeurs EncodeReserved et DecodeReserved ne doivent pas être utilisées conjointement dans un même appel. Le comportement est indéfini si cela se produit. Elles sont fournies en tant que valeurs distinctes car le comportement du « mode joli » concernant les caractères réservés diffère selon les composants, et en particulier sur l’URL complète.
Décodage complet
Le mode FullyDecoded est similaire au comportement des fonctions renvoyant un ` QString ` dans Qt 4.x, en ce sens que chaque caractère représente lui-même et n’a jamais de signification particulière. Cela vaut même pour le caractère pourcentage (« % »), qui doit être interprété comme un pourcentage littéral, et non comme le début d’une séquence codée en pourcentage. Ce même caractère, dans tous les autres modes de décodage, est représenté par la séquence « %25 ».
Chaque fois que l'on réutilise des données obtenues avec QUrl::FullyDecoded dans un QUrl, il faut veiller à utiliser le paramètre QUrl::DecodedMode dans les méthodes de mise en valeur (telles que setPath() et setUserName()). Ne pas le faire peut entraîner une réinterprétation du caractère pourcentage (« % ») comme le début d'une séquence codée en pourcentage.
Ce mode est très utile lorsque des parties d’une URL sont utilisées dans un contexte autre que celui d’une URL. Par exemple, pour extraire le nom d’utilisateur, le mot de passe ou les chemins d’accès aux fichiers dans une application cliente FTP, il convient d’utiliser le mode FullyDecoded.
Ce mode doit être utilisé avec prudence, car deux conditions ne peuvent pas être représentées de manière fiable dans l’ QString. Il s’agit des suivantes :
- Séquences non UTF-8 : les URL peuvent contenir des séquences de caractères encodés en pourcentage qui ne forment pas de séquences UTF-8 valides. Les URL devant être décodées en UTF-8, tout échec du décodeur entraînera l’insertion, dans l’ QString, d’un ou plusieurs caractères de remplacement à l’emplacement de la séquence concernée.
- Délimiteurs encodés : les URL sont également autorisées à faire la distinction entre un délimiteur sous sa forme littérale et son équivalent sous forme encodée en pourcentage. Ce cas de figure se rencontre le plus souvent dans la partie « query », mais est autorisé dans la plupart des parties de l’URL.
L'exemple suivant illustre le problème :
QUrl original("http://example.com/?q=a%2B%3Db%26c");
QUrl copy(original);
copy.setQuery(copy.query(QUrl::FullyDecoded), QUrl::DecodedMode);
qDebug() << original.toString(); // prints: http://example.com/?q=a%2B%3Db%26c
qDebug() << copy.toString(); // prints: http://example.com/?q=a+=b&cSi ces deux URL étaient utilisées via une requête HTTP GET, l'interprétation par le serveur web serait probablement différente. Dans le premier cas, il les interpréterait comme un seul paramètre, avec une clé « q » et une valeur « a+=b&c ». Dans le second cas, il les interpréterait probablement comme deux paramètres : l'un avec une clé « q » et une valeur « a = b », et le second avec une clé « c » et aucune valeur.
Le type `ComponentFormattingOptions` est un `typedef` pour ` QFlags<ComponentFormattingOption>`. Il stocke une combinaison OR de valeurs `ComponentFormattingOption`.
Voir également QUrl::FormattingOptions.
enum QUrl::ParsingMode
Le mode d'analyse détermine la manière dont QUrl analyse les chaînes de caractères.
| Constante | Valeur | Description |
|---|---|---|
QUrl::TolerantMode | 0 | QUrl tentera de corriger certaines erreurs courantes dans les URL. Ce mode est utile pour analyser des URL provenant de sources dont on ne sait pas si elles respectent strictement les normes. |
QUrl::StrictMode | 1 | Seules les URL valides sont acceptées. Ce mode est utile pour la validation générale des URL. |
QUrl::DecodedMode | 2 | QUrl interprète le composant de l’URL sous sa forme entièrement décodée, où les caractères « % » représentent eux-mêmes, et non le début d’une séquence encodée en pourcentage. Ce mode n’est valable que pour les méthodes de définition (setters) définissant des composants d’une URL ; il n’est pas autorisé dans le constructeur de l’ QUrl, dans fromEncoded() ou dans setUrl(). Pour plus d’informations sur ce mode, consultez la documentation relative à QUrl::FullyDecoded. |
En mode « TolerantMode », l’analyseur se comporte comme suit :
- Espaces et « %20 » : les espaces non encodés sont acceptés et traités comme équivalents à « %20 ».
- Caractères « % » isolés : si un caractère « % » n’est pas suivi de deux caractères hexadécimaux (par exemple, « 13% coverage.html »), l’analyseur supposera que l’entrée n’a pas été encodée et remplacera tous les caractères « % » par « %25 ».
- Caractères réservés et non réservés : une URL encodée ne doit contenir que quelques caractères sous forme littérale ; tous les autres caractères doivent être encodés en pourcentage. En mode « TolerantMode », ces caractères seront acceptés s’ils apparaissent dans l’URL : espace / guillemet double / « < » / « > » / « » / « ^ » / « ` » / « { » / « | » / « } » Ces mêmes caractères peuvent être décodés à nouveau en transmettant ` QUrl::DecodeReserved ` à ` toString()` ou ` toEncoded()`. Dans les méthodes `getter` des composants individuels, ces caractères sont souvent renvoyés sous leur forme décodée.
En mode StrictMode, si une erreur d’analyse est détectée, la méthode isValid() renvoie false et la méthode errorString() renvoie un message décrivant l’erreur. Si plusieurs erreurs sont détectées, il n’est pas défini quelle erreur sera signalée.
Notez que le mode « TolerantMode » n’est généralement pas suffisant pour analyser les entrées utilisateur, qui contiennent souvent plus d’erreurs et d’exigences que l’analyseur ne peut en traiter. Lorsque vous traitez des données provenant directement de l’utilisateur – par opposition aux données issues de sources de transfert de données, telles que d’autres programmes –, il est recommandé d’utiliser la méthode ` fromUserInput()`.
Voir également fromUserInput(), setUrl(), toString(), toEncoded() et QUrl::FormattingOptions.
enum QUrl::UrlFormattingOption
flags QUrl::FormattingOptions
Les options de mise en forme définissent la manière dont l'URL est affichée lorsqu'elle est représentée sous forme de texte.
| Constante | Valeur | Description |
|---|---|---|
QUrl::None | 0x0 | Le format de l'URL reste inchangé. |
QUrl::RemoveScheme | 0x1 | Le schéma est supprimé de l'URL. |
QUrl::RemovePassword | 0x2 | Tout mot de passe présent dans l'URL est supprimé. |
QUrl::RemoveUserInfo | RemovePassword | 0x4 | Toute information relative à l'utilisateur présente dans l'URL est supprimée. |
QUrl::RemovePort | 0x8 | Tout port spécifié est supprimé de l'URL. |
QUrl::RemoveAuthority | RemoveUserInfo | RemovePort | 0x10 | Supprimez le nom d'utilisateur, le mot de passe, l'hôte et le port. |
QUrl::RemovePath | 0x20 | Le chemin d'accès de l'URL est supprimé, ne laissant que le schéma, l'adresse de l'hôte et le port (le cas échéant). |
QUrl::RemoveQuery | 0x40 | La partie « requête » de l'URL (suivant le caractère « ? ») est supprimée. |
QUrl::RemoveFragment | 0x80 | La partie « fragment » de l’URL (y compris le caractère « # ») est supprimée. |
QUrl::RemoveFilename | 0x800 | Le nom de fichier (c'est-à-dire tout ce qui se trouve après le dernier « / » du chemin d'accès) est supprimé. Le « / » final est conservé, sauf si l'option StripTrailingSlash est activée. Valable uniquement si l'option RemovePath n'est pas activée. |
QUrl::PreferLocalFile | 0x200 | Si l’URL correspond à un fichier local selon isLocalFile() et ne contient ni requête ni fragment, un chemin d’accès au fichier local est renvoyé. |
QUrl::StripTrailingSlash | 0x400 | La barre oblique finale est supprimée du chemin d'accès, le cas échéant. |
QUrl::NormalizePathSegments | 0x1000 | Modifie le chemin d’accès pour supprimer les séparateurs de répertoires redondants et pour résoudre les « . » et « .. » (dans la mesure du possible). Pour les chemins d’accès non locaux, les barres obliques adjacentes sont conservées. |
Notez que les règles de mise en minuscule de Nameprep, auxquelles se conforme QUrl, exigent que les noms d’hôtes soient toujours convertis en minuscules, quelles que soient les options Qt::FormattingOptions utilisées.
Les options de ` QUrl::ComponentFormattingOptions ` sont également disponibles.
Le type FormattingOptions est un typedef pour QFlags<UrlFormattingOption>. Il stocke une combinaison OU de valeurs UrlFormattingOption.
Voir également QUrl::ComponentFormattingOptions.
enum QUrl::UserInputResolutionOption
flags QUrl::UserInputResolutionOptions
Les options de résolution des entrées utilisateur définissent la manière dont la fonction ` fromUserInput()` doit interpréter les chaînes de caractères pouvant correspondre soit à un chemin relatif, soit à la forme abrégée d'une URL HTTP. Par exemple, ` file.pl ` peut désigner soit un fichier local, soit l'URL ` http://file.pl`.
| Constante | Valeur | Description |
|---|---|---|
QUrl::DefaultResolution | 0 | Le mécanisme de résolution par défaut consiste à vérifier si un fichier local existe, dans le répertoire de travail fourni à la fonction ` fromUserInput`, et à ne renvoyer un chemin d'accès local que dans ce cas. Dans le cas contraire, on suppose qu'il s'agit d'une URL. |
QUrl::AssumeLocalFile | 1 | Cette option fait en sorte que la fonction ` fromUserInput()` renvoie toujours un chemin local, sauf si l’entrée contient un schéma, tel que ` http://file.pl`. Cela s’avère utile pour des applications telles que les éditeurs de texte, qui sont capables de créer le fichier s’il n’existe pas. |
Le type `UserInputResolutionOptions` est une définition de type pour `QFlags<UserInputResolutionOption>`. Il stocke une combinaison (ou) de valeurs `UserInputResolutionOption`.
Voir également fromUserInput().
Documentation des fonctions membres
QUrl::QUrl()
Crée un objet QUrl vide.
QUrl::QUrl(const QString &url, QUrl::ParsingMode parsingMode = TolerantMode)
Construit une URL en analysant url. Notez que ce constructeur attend une URL valide ou une référence d'URL et ne tentera pas de deviner l'intention. Par exemple, la déclaration suivante :
QUrl url("example.com");construira une URL valide, mais celle-ci risque de ne pas correspondre à ce que l'on attend, car la partie scheme() de l'entrée est manquante. Pour une chaîne comme celle ci-dessus, les applications peuvent préférer utiliser fromUserInput(). Pour ce constructeur ou setUrl(), ce qui suit correspond probablement à l'intention initiale :
QUrl url("https://example.com");QUrl effectuera automatiquement l’encodage en pourcentage de tous les caractères non autorisés dans une URL et décodera les séquences encodées en pourcentage représentant un caractère non réservé (lettres, chiffres, tirets, traits de soulignement, points et tildes). Tous les autres caractères sont conservés sous leur forme d’origine.
Analyse l’ url e en utilisant le mode d’analyse parsingMode. Dans TolerantMode (par défaut), QUrl corrigera certaines erreurs, notamment la présence d’un caractère pourcentage (« % ») non suivi de deux chiffres hexadécimaux, et acceptera n’importe quel caractère à n’importe quelle position. En mode StrictMode, les erreurs d’encodage ne seront pas tolérées et QUrl vérifiera également que certains caractères interdits ne sont pas présents sous leur forme non encodée. Si une erreur est détectée en mode StrictMode, la fonction isValid() renverra false. Le mode d’analyse DecodedMode n’est pas autorisé dans ce contexte.
Exemple :
QUrl url("http://www.example.com/List of holidays.xml");
// url.toEncoded() == "http://www.example.com/List%20of%20holidays.xml"Pour construire une URL à partir d’une chaîne encodée, vous pouvez également utiliser ` fromEncoded()` :
Ces deux fonctions sont équivalentes et, dans Qt 5, elles acceptent toutes deux des données encodées. En général, le choix entre le constructeur QUrl ou setUrl() et fromEncoded() dépendra des données source : le constructeur et setUrl() prennent une chaîne « QString », tandis que fromEncoded prend une chaîne « QByteArray ».
Voir également setUrl(), fromEncoded() et TolerantMode.
[noexcept] QUrl::QUrl(const QUrl &other)
Crée une copie de other.
[noexcept] QUrl::QUrl(QUrl &&other)
Crée une instance de `QUrl` en la faisant pointer vers le même objet que celui vers lequel pointait ` other `.
[noexcept] QUrl::~QUrl()
Destructeur ; appelé immédiatement avant la suppression de l'objet.
QUrl QUrl::adjusted(QUrl::FormattingOptions options) const
Renvoie une version ajustée de l'URL. Le résultat peut être personnalisé en passant des indicateurs via options.
Les options d'encodage de QUrl::ComponentFormattingOption n'ont pas vraiment de sens pour cette méthode, pas plus que celles de QUrl::PreferLocalFile.
Cela revient toujours à QUrl(url.toString(options)).
Voir également FormattingOptions, toEncoded() et toString().
QString QUrl::authority(QUrl::ComponentFormattingOptions options = PrettyDecoded) const
Renvoie l'autorité de l'URL si celle-ci est définie ; sinon, une chaîne vide est renvoyée.
Cette fonction renvoie une valeur sans ambiguïté, qui peut contenir des caractères encore encodés en pourcentage, ainsi que certaines séquences de contrôle non représentables sous forme décodée dans QString.
L’argument ` options ` contrôle le formatage du composant d’informations utilisateur. La valeur ` QUrl::FullyDecoded ` n’est pas autorisée dans cette fonction. Si vous avez besoin d’obtenir des données entièrement décodées, appelez les fonctions ` userName()`, ` password()`, ` host()` et ` port()` individuellement.
Voir également setAuthority(), userInfo(), userName(), password(), host() et port().
void QUrl::clear()
Réinitialise le contenu de ` QUrl`. Après l'appel de cette fonction, ` QUrl ` correspond à un objet construit à l'aide du constructeur par défaut (vide).
Voir également isEmpty().
QString QUrl::errorString() const
Renvoie un message d'erreur si la dernière opération ayant modifié cet objet QUrl a rencontré une erreur d'analyse. Si aucune erreur n'a été détectée, cette fonction renvoie une chaîne vide et isValid() renvoie true.
Le message d'erreur renvoyé par cette fonction est de nature technique et peut ne pas être compris par les utilisateurs finaux. Il est surtout utile aux développeurs qui cherchent à comprendre pourquoi QUrl n'accepte pas certaines entrées.
Voir également QUrl::ParsingMode.
QString QUrl::fileName(QUrl::ComponentFormattingOptions options = FullyDecoded) const
Renvoie le nom du fichier, sans le chemin d'accès au répertoire.
Notez que si l'objet « QUrl » reçoit un chemin se terminant par une barre oblique, le nom du fichier est considéré comme vide.
Si le chemin ne contient aucune barre oblique, il est renvoyé dans son intégralité en tant que nom de fichier.
Exemple :
QUrl url("http://qt-project.org/support/file.html");
// url.adjusted(RemoveFilename) == "http://qt-project.org/support/"
// url.fileName() == "file.html"L'argument ` options ` contrôle le formatage de la partie « nom de fichier ». Toutes les valeurs produisent un résultat sans ambiguïté. Avec ` QUrl::FullyDecoded`, toutes les séquences encodées en pourcentage sont décodées ; sinon, la valeur renvoyée peut contenir certaines séquences encodées en pourcentage correspondant à des séquences de contrôle qui ne peuvent pas être représentées sous forme décodée dans ` QString`.
Voir également path().
QString QUrl::fragment(QUrl::ComponentFormattingOptions options = PrettyDecoded) const
Renvoie le fragment de l'URL. Pour déterminer si l'URL analysée contenait un fragment, utilisez la fonction ` hasFragment()`.
L'argument ` options ` contrôle le formatage du fragment. Toutes les valeurs produisent un résultat sans ambiguïté. Avec ` QUrl::FullyDecoded`, toutes les séquences encodées en pourcentage sont décodées ; sinon, la valeur renvoyée peut contenir certaines séquences encodées en pourcentage correspondant à des séquences de contrôle qui ne peuvent pas être représentées sous forme décodée dans ` QString`.
Notez que QUrl::FullyDecoded peut entraîner une perte de données si ces séquences non représentables sont présentes. Il est recommandé d’utiliser cette valeur lorsque le résultat sera utilisé dans un contexte autre qu’une URL.
Voir également setFragment() et hasFragment().
[static, since 6.3] QString QUrl::fromAce(const QByteArray &domain, QUrl::AceProcessingOptions options = {})
Renvoie la forme Unicode du nom de domaine donné domain, qui est encodé selon le codage compatible ASCII (ACE). Le résultat peut être personnalisé en passant des indicateurs à l'aide de options. Le résultat de cette fonction est considéré comme équivalent à domain.
Si la valeur de domain ne peut pas être encodée, elle sera convertie en QString puis renvoyée.
L'encodage compatible ASCII (ACE) est défini par les RFC 3490, 3491 et 3492 et mis à jour par la norme technique Unicode n° 46. Il fait partie de la spécification IDNA (Internationalizing Domain Names in Applications), qui permet d’écrire des noms de domaine (tels que "example.com") à l’aide de caractères non US-ASCII.
Cette fonction a été introduite dans Qt 6.3.
[static] QUrl QUrl::fromCFURL(CFURLRef url)
Crée un objet ` QUrl ` contenant une copie de l'URL CFURL url.
[static] QUrl QUrl::fromEncoded(QByteArrayView input, QUrl::ParsingMode mode = TolerantMode)
Analyse l'URL input et renvoie l'URL correspondante QUrl. L'URL input est supposée être sous forme encodée, ne contenant que des caractères ASCII.
Analyse l'URL à l'aide de ` mode`. Voir ` setUrl()` pour plus d'informations sur ce paramètre. ` QUrl::DecodedMode ` n'est pas autorisé dans ce contexte.
Remarque : dans les versions de Qt antérieures à la version 6.7, cette fonction prenait un QByteArray, et non un QByteArrayView. Si vous rencontrez des erreurs de compilation, c’est parce que votre code transmet des objets implicitement convertibles en QByteArray, mais pas en QByteArrayView. Enveloppez l’argument correspondant dans un QByteArray{~~~} pour rendre la conversion explicite. Cette méthode est rétrocompatible avec les anciennes versions de Qt.
Voir également toEncoded() et setUrl().
[static] QUrl QUrl::fromLocalFile(const QString &localFile)
Renvoie une représentation de type « QUrl » de localFile, interprétée comme un fichier local. Cette fonction accepte les chemins séparés par des barres obliques ainsi que le séparateur natif de cette plateforme.
Cette fonction accepte également les chemins d'accès commençant par deux barres obliques (ou barres obliques inversées) pour indiquer un fichier distant, comme dans « //servername/path/to/file.txt ». Notez que seules certaines plateformes peuvent réellement ouvrir ce fichier à l'aide de la fonction QFile::open().
Un ` localFile ` vide génère une URL vide (depuis Qt 5.4).
qDebug() << QUrl::fromLocalFile("file.txt"); // QUrl("file:file.txt")
qDebug() << QUrl::fromLocalFile("/home/user/file.txt"); // QUrl("file:///home/user/file.txt")
qDebug() << QUrl::fromLocalFile("file:file.txt"); // doesn't make sense; expects path, not url with schemeDans la première ligne de l'extrait ci-dessus, une URL de fichier est construite à partir d'un chemin d'accès local et relatif. Une URL de fichier comportant un chemin d'accès relatif n'a de sens que s'il existe une URL de base permettant de la résoudre. Par exemple :
QUrl url = QUrl::fromLocalFile("file.txt");
QUrl baseUrl = QUrl("file:/home/user/");
// incorrect : affiche QUrl("file:file.txt"), car url possède déjà un schéma
qDebug() << baseUrl.resolved(url);Pour résoudre une telle URL, il faut d'abord supprimer le schéma :
// correct : affiche QUrl("file:///home/user/file.txt")
url.setScheme(QString());
qDebug() << baseUrl.resolved(url);C'est pourquoi il est préférable d'utiliser une URL relative (c'est-à-dire sans schéma) pour les chemins d'accès relatifs aux fichiers :
QUrl url = QUrl("file.txt");
QUrl baseUrl = QUrl("file:/home/user/");
// affiche QUrl("file:///home/user/file.txt")
qDebug() << baseUrl.resolved(url);Voir également toLocalFile(), isLocalFile() et QDir::toNativeSeparators().
[static] QUrl QUrl::fromNSURL(const NSURL *url)
Crée un objet ` QUrl ` contenant une copie de l'URL ` url`.
[static] QString QUrl::fromPercentEncoding(const QByteArray &input)
Renvoie une copie décodée de input. input est d'abord décodé à partir du codage en pourcentage, puis converti de l'UTF-8 vers Unicode.
Remarque : si l'entrée n'est pas valide (par exemple, une chaîne contenant la séquence « %G5 », qui n'est pas un nombre hexadécimal valide), la sortie ne sera pas valide non plus. À titre d'exemple : la séquence « %G5 » pourrait être décodée en « W ».
[static] QList<QUrl> QUrl::fromStringList(const QStringList &urls, QUrl::ParsingMode mode = TolerantMode)
Convertit une liste de chaînes de caractères représentant des adresses de type « urls » en une liste d'URL, à l'aide de la fonction QUrl(str, mode). Notez que cela implique que toutes les chaînes doivent être des URL, et non pas, par exemple, des chemins d'accès locaux.
[static] QUrl QUrl::fromUserInput(const QString &userInput, const QString &workingDirectory = QString(), QUrl::UserInputResolutionOptions options = DefaultResolution)
Renvoie une URL valide à partir d'une chaîne fournie par l'utilisateur userInput si une URL peut être déduite. Si cela n'est pas possible, une valeur non valide QUrl() est renvoyée.
Cela permet à l’utilisateur de saisir une URL ou un chemin d’accès à un fichier local sous la forme d’une chaîne de caractères simple. Cette chaîne peut être saisie manuellement dans la barre d’adresse, récupérée depuis le presse-papiers ou transmise via des arguments de ligne de commande.
Lorsque la chaîne n’est pas déjà une URL valide, une estimation est effectuée en se basant sur diverses hypothèses.
Si la chaîne correspond à un chemin d’accès valide sur le système, une URL de type `file://` est construite à l’aide de la fonction ` QUrl::fromLocalFile()`.
Si ce n’est pas le cas, le programme tente de transformer la chaîne en une URL de type http:// ou ftp://. Cette dernière option est utilisée si la chaîne commence par « ftp ». Le résultat est ensuite soumis au parseur tolérant de la fonction QUrl; en cas de succès, une URL QUrl valide est renvoyée, sinon une erreur QUrl() est générée.
Exemples :
- qt-project.org devient http://qt-project.org
- ftp.qt-project.org devient ftp://ftp.qt-project.org
- hostname devient http://hostname
- /home/user/test.html devient file:///home/user/test.html
Afin de pouvoir gérer les chemins relatifs, cette méthode accepte un chemin facultatif « workingDirectory ». Cela s’avère particulièrement utile lors du traitement des arguments de ligne de commande. Si « workingDirectory » est vide, aucun traitement des chemins relatifs ne sera effectué.
Par défaut, une chaîne d’entrée ressemblant à un chemin relatif ne sera traitée comme telle que si le fichier existe réellement dans le répertoire de travail indiqué. Si l’application peut gérer des fichiers qui n’existent pas encore, elle doit passer le drapeau AssumeLocalFile dans options.
bool QUrl::hasFragment() const
Renvoie « true » si cette URL contient un fragment (c'est-à-dire si elle comporte le caractère « # »).
Voir également fragment() et setFragment().
bool QUrl::hasQuery() const
Renvoie « true » si cette URL contient une requête (c'est-à-dire si elle comporte le caractère « ? »).
Voir également setQuery(), query() et hasFragment().
QString QUrl::host(QUrl::ComponentFormattingOptions options = FullyDecoded) const
Renvoie l'hôte de l'URL s'il est défini ; sinon, une chaîne vide est renvoyée.
L’argument options contrôle le formatage du nom d’hôte. L’option ` QUrl::EncodeUnicode ` fait en sorte que cette fonction renvoie le nom d’hôte au format ACE (ASCII-Compatible Encoding), qui convient aux canaux non compatibles 8 bits ou nécessitant le nom d’hôte traditionnel (comme les requêtes DNS ou les en-têtes de requêtes HTTP). Si ce drapeau n’est pas présent, cette fonction renvoie le nom de domaine international (IDN) au format Unicode, conformément à la liste des domaines de premier niveau autorisés (voir idnWhitelist()).
Tous les autres indicateurs sont ignorés. Les noms d’hôte ne peuvent pas contenir de caractères de contrôle ni de caractères « % » ; la valeur renvoyée peut donc être considérée comme entièrement décodée.
Voir également setHost(), idnWhitelist(), setIdnWhitelist() et authority().
[static] QStringList QUrl::idnWhitelist()
Renvoie la liste blanche actuelle des domaines de premier niveau autorisés à comporter des caractères non ASCII dans leur composition.
Voir setIdnWhitelist() pour connaître la justification de cette liste.
Voir également setIdnWhitelist() et AceProcessingOption.
bool QUrl::isEmpty() const
Renvoie « true » si l'URL ne contient aucune donnée ; sinon, renvoie « false ».
Voir aussi clear().
bool QUrl::isLocalFile() const
Renvoie ` true ` si cette URL pointe vers un chemin d'accès à un fichier local. Une URL est considérée comme un chemin d'accès à un fichier local si son schéma est « file ».
Notez que cette fonction considère les URL comportant un nom d’hôte comme des chemins d’accès à des fichiers locaux, même si le chemin d’accès au fichier final ne peut pas être ouvert avec QFile::open().
Voir également fromLocalFile() et toLocalFile().
bool QUrl::isParentOf(const QUrl &childUrl) const
Renvoie « true » si cette URL est une URL parente de « childUrl ». « childUrl » est une URL fille de cette URL si les deux URL partagent le même schéma et la même autorité, et si le chemin d'accès de cette URL est une URL parente du chemin d'accès de « childUrl ».
bool QUrl::isRelative() const
Renvoie true si l'URL est relative ; sinon, renvoie false. Une URL est une référence relative si son schéma n'est pas défini ; cette fonction équivaut donc à appeler scheme().isEmpty().
Les références relatives sont définies dans la section 4.2 de la RFC 3986.
Voir également Relative URLs vs Relative Paths.
bool QUrl::isValid() const
Renvoie « true » si l'URL n'est pas vide et est valide ; sinon, renvoie « false ».
L'URL est soumise à un test de conformité. Chaque partie de l'URL doit respecter les règles d'encodage de la norme URI pour que l'URL soit considérée comme valide.
bool checkUrl(const QUrl&url) {
if (!url.isValid()) {
qDebug("Invalid URL: %s", qUtf8Printable(url.toString()));
return false;
}
return true;
}bool QUrl::matches(const QUrl &url, QUrl::FormattingOptions options) const
Renvoie true si cette URL et l'url fournie sont identiques après avoir appliqué options aux deux ; sinon, renvoie false.
Cela revient à appeler adjusted(options) sur les deux URL et à comparer les URL obtenues, mais de manière plus rapide.
QString QUrl::password(QUrl::ComponentFormattingOptions options = FullyDecoded) const
Renvoie le mot de passe de l'URL s'il est défini ; sinon, une chaîne vide est renvoyée.
L'argument ` options ` contrôle le formatage de la partie « nom d'utilisateur ». Toutes les valeurs produisent un résultat sans ambiguïté. Avec ` QUrl::FullyDecoded`, toutes les séquences encodées en pourcentage sont décodées ; sinon, la valeur renvoyée peut contenir certaines séquences encodées en pourcentage pour certaines séquences de contrôle non représentables sous forme décodée dans ` QString`.
Notez que la valeur « QUrl::FullyDecoded » peut entraîner une perte de données si ces séquences non représentables sont présentes. Il est recommandé d'utiliser cette valeur lorsque le résultat sera utilisé dans un contexte autre qu'une URL, par exemple pour la configuration dans « QAuthenticator » ou la négociation d'une connexion.
Voir également setPassword().
QString QUrl::path(QUrl::ComponentFormattingOptions options = FullyDecoded) const
Renvoie le chemin d'accès de l'URL.
qDebug() << QUrl("file:file.txt").path(); // "file.txt"
qDebug() << QUrl("/home/user/file.txt").path(); // "/home/user/file.txt"
qDebug() << QUrl("http://www.example.com/test/123").path(); // "/test/123"L'argument ` options ` détermine le formatage des éléments du chemin d'accès. Toutes les valeurs produisent un résultat sans ambiguïté. Avec ` QUrl::FullyDecoded`, toutes les séquences codées en pourcentage sont décodées ; dans le cas contraire, la valeur renvoyée peut contenir certaines séquences codées en pourcentage pour certaines séquences de contrôle qui ne peuvent pas être représentées sous forme décodée dans ` QString`.
Notez que la valeur « QUrl::FullyDecoded » peut entraîner une perte de données si ces séquences non représentables sont présentes. Il est recommandé d’utiliser cette valeur lorsque le résultat sera utilisé dans un contexte autre qu’une URL, par exemple lors d’un envoi vers un serveur FTP.
Un exemple de perte de données se produit lorsque vous avez des séquences encodées en pourcentage non Unicode et que vous utilisez FullyDecoded (valeur par défaut) :
Dans cet exemple, il y aura une certaine perte de données car l’ %FF ne peut pas être converti.
Une perte de données peut également se produire lorsque le chemin d'accès contient des sous-délimiteurs (tels que +) :
Autres exemples de décodage :
const QUrl url("/tmp/Mambo %235%3F.mp3");
qDebug() << url.path(QUrl::FullyDecoded); // "/tmp/Mambo #5?.mp3"
qDebug() << url.path(QUrl::PrettyDecoded); // "/tmp/Mambo #5?.mp3"
qDebug() << url.path(QUrl::FullyEncoded); // "/tmp/Mambo%20%235%3F.mp3"Voir également setPath().
int QUrl::port(int defaultPort = -1) const
Renvoie le port de l'URL, ou « defaultPort » si le port n'est pas spécifié.
Exemple :
QTcpSocket sock;
sock.connectToHost(url.host(), url.port(80));Voir aussi setPort().
QString QUrl::query(QUrl::ComponentFormattingOptions options = PrettyDecoded) const
Renvoie la chaîne de requête de l'URL s'il y en a une, ou un résultat vide dans le cas contraire. Pour déterminer si l'URL analysée contenait une chaîne de requête, utilisez la fonction hasQuery().
L'argument ` options ` contrôle le formatage de la partie « requête ». Toutes les valeurs produisent un résultat sans ambiguïté. Avec ` QUrl::FullyDecoded`, toutes les séquences encodées en pourcentage sont décodées ; dans le cas contraire, la valeur renvoyée peut contenir certaines séquences encodées en pourcentage pour certaines séquences de contrôle qui ne peuvent pas être représentées sous forme décodée dans ` QString`.
Notez que l'utilisation de ` QUrl::FullyDecoded ` dans les requêtes est déconseillée, car celles-ci contiennent souvent des données censées rester encodées en pourcentage, notamment l'utilisation de la séquence « %2B » pour représenter le caractère plus (« + »).
Voir également setQuery() et hasQuery().
QUrl QUrl::resolved(const QUrl &relative) const
Renvoie le résultat de la fusion de cette URL avec relative. Cette URL sert de base pour convertir relative en une URL absolue.
Si relative n'est pas une URL relative, cette fonction renvoie directement relative. Sinon, les chemins des deux URL sont fusionnés, et la nouvelle URL renvoyée conserve le schéma et l'autorité de l'URL de base, mais avec le chemin fusionné, comme dans l'exemple suivant :
QUrl baseUrl("http://qt.digia.com/Support/");
QUrl relativeUrl("../Product/Library/");
qDebug(qUtf8Printable(baseUrl.resolved(relativeUrl).toString()));
// affiche « http://qt.digia.com/Product/Library/ »L'appel de la méthode `resolved()` avec « .. » renvoie un ` QUrl ` dont le répertoire se trouve un niveau au-dessus de celui d'origine. De même, l'appel de la méthode `resolved()` avec « ../.. » supprime deux niveaux du chemin. Si ` relative ` est « / », le chemin devient « / ».
Voir aussi isRelative().
QString QUrl::scheme() const
Renvoie le schéma de l'URL. Si une chaîne vide est renvoyée, cela signifie que le schéma n'est pas défini et que l'URL est donc relative.
Le schéma ne peut contenir que des lettres ou des chiffres US-ASCII, ce qui signifie qu’il ne peut contenir aucun caractère nécessitant un encodage. De plus, les schémas sont toujours renvoyés en minuscules.
Voir également setScheme() et isRelative().
void QUrl::setAuthority(const QString &authority, QUrl::ParsingMode mode = TolerantMode)
Définit l'autorité de l'URL sur authority.
L'autorité d'une URL est la combinaison des informations utilisateur, d'un nom d'hôte et d'un port. Tous ces éléments sont facultatifs ; une autorité vide est donc valide.
Les informations utilisateur et l'hôte sont séparés par un « @ », et l'hôte et le port sont séparés par un « : ». Si les informations utilisateur sont vides, le « @ » doit être omis ; toutefois, un « : » isolé est autorisé si le port est vide.
L'exemple suivant illustre une chaîne d'autorité valide :

Les données de l’ authority e sont interprétées conformément à la norme mode: dans StrictMode, tout caractère « % » doit être suivi d’exactement deux caractères hexadécimaux et certains caractères (y compris l’espace) ne sont pas autorisés sous forme non décodée. Dans TolerantMode (valeur par défaut), tous les caractères sont acceptés sous forme non décodée et l'analyseur tolérant corrigera les caractères « % » isolés non suivis de deux caractères hexadécimaux.
Cette fonction ne permet pas de définir mode comme QUrl::DecodedMode. Pour définir des données entièrement décodées, appelez individuellement les fonctions setUserName(), setPassword(), setHost() et setPort().
Voir également authority(), setUserInfo(), setHost() et setPort().
void QUrl::setFragment(const QString &fragment, QUrl::ParsingMode mode = TolerantMode)
Définit le fragment de l'URL sur fragment. Le fragment est la dernière partie de l'URL, représentée par un « # » suivi d'une chaîne de caractères. Il est généralement utilisé en HTTP pour faire référence à un lien ou à un point précis d'une page :

Le fragment est parfois également appelé « référence » de l'URL.
Le passage d’un argument de type QString() (un QString nul) effacera le fragment. Le passage d’un argument de type QString(« ») (un QString vide mais non nul) définira le fragment sur une chaîne vide (comme si l’URL d’origine ne comportait qu’un seul « # »).
Les données de fragment sont interprétées conformément à mode: dans StrictMode, tout caractère « % » doit être suivi exactement de deux caractères hexadécimaux et certains caractères (y compris l’espace) ne sont pas autorisés sous leur forme non codée. Dans TolerantMode, tous les caractères sont acceptés sous leur forme non codée et l’analyseur tolérant corrigera les « % » isolés non suivis de deux caractères hexadécimaux. Dans DecodedMode, les caractères « % » représentent eux-mêmes et les caractères encodés ne sont pas autorisés.
QUrl::DecodedMode Cette option doit être utilisée lors de la définition du fragment à partir d’une source de données qui n’est pas une URL ou avec un fragment obtenu en appelant fragment() avec l’option de formatage QUrl::FullyDecoded.
Voir également fragment() et hasFragment().
void QUrl::setHost(const QString &host, QUrl::ParsingMode mode = DecodedMode)
Définit l'hôte de l'URL sur host. L'hôte fait partie de l'autorité.
Les données host sont interprétées conformément à mode: dans StrictMode, tout caractère « % » doit être suivi exactement de deux caractères hexadécimaux et certains caractères (y compris l'espace) ne sont pas autorisés sous leur forme non codée. Dans TolerantMode, tous les caractères sont acceptés sous leur forme non codée et l'analyseur tolérant corrigera les caractères « % » isolés non suivis de deux caractères hexadécimaux. Dans DecodedMode, les caractères « % » représentent eux-mêmes et les caractères encodés ne sont pas autorisés.
Notez que, dans tous les cas, le résultat de l’analyse doit être un nom d’hôte valide selon les règles de la norme STD 3, telles que modifiées par la spécification relative aux identifiants de ressources internationalisés (RFC 3987). Les noms d’hôtes non valides ne sont pas autorisés et entraîneront la valeur « false » pour isValid().
Voir également host() et setAuthority().
[static] void QUrl::setIdnWhitelist(const QStringList &list)
Définit la liste blanche des domaines de premier niveau (TLD) autorisés à contenir des caractères non ASCII dans leurs noms de domaine sur la valeur list.
Notez que si vous appelez cette fonction, vous devez le faire avant de lancer tout thread susceptible d’accéder à idnWhitelist().
Qt est fourni avec une liste par défaut contenant les domaines de premier niveau Internet qui ont annoncé la prise en charge des noms de domaine internationalisés (IDN) ainsi que des règles visant à garantir qu’aucune confusion ne puisse se produire entre des caractères d’apparence similaire (tels que la lettre minuscule latine « 'a' » et son équivalent cyrillique, qui sont visuellement identiques dans la plupart des polices).
Cette liste est mise à jour régulièrement, à mesure que les bureaux d’enregistrement publient de nouvelles règles.
Cette fonction est fournie à l’intention de ceux qui ont besoin de manipuler la liste, afin d’ajouter ou de supprimer un TLD. Il n’est pas recommandé de modifier sa valeur à d’autres fins que des tests, car cela pourrait exposer les utilisateurs à des risques de sécurité.
Voir également idnWhitelist().
void QUrl::setPassword(const QString &password, QUrl::ParsingMode mode = DecodedMode)
Définit le mot de passe de l'URL sur « password ». L'password fait partie de l'élément « user info » dans l'autorité de l'URL, comme décrit dans setUserInfo().
Les données « password » sont interprétées conformément à mode: dans StrictMode, tout caractère « % » doit être suivi exactement de deux caractères hexadécimaux et certains caractères (y compris l’espace) ne sont pas autorisés sous leur forme non codée. Dans TolerantMode, tous les caractères sont acceptés sous leur forme non codée et l’analyseur tolérant corrigera les caractères « % » isolés non suivis de deux caractères hexadécimaux. Dans DecodedMode, les caractères « % » représentent eux-mêmes et les caractères encodés ne sont pas autorisés.
QUrl::DecodedMode Cette méthode doit être utilisée lors de la définition du mot de passe à partir d’une source de données autre qu’une URL, par exemple une boîte de dialogue de mot de passe affichée à l’utilisateur ou un mot de passe obtenu en appelant password() avec l’option de formatage QUrl::FullyDecoded.
Voir également password() et setUserInfo().
void QUrl::setPath(const QString &path, QUrl::ParsingMode mode = DecodedMode)
Définit le chemin d'accès de l'URL sur path. Le chemin d'accès correspond à la partie de l'URL qui se trouve après le nom de domaine et avant la chaîne de requête.

Pour les schémas non hiérarchiques, le chemin correspond à tout ce qui suit la déclaration du schéma, comme dans l’exemple suivant :

Les données path sont interprétées conformément à mode: dans StrictMode, tout caractère « % » doit être suivi d'exactement deux caractères hexadécimaux et certains caractères (y compris l'espace) ne sont pas autorisés sous leur forme non codée. Dans TolerantMode, tous les caractères sont acceptés sous leur forme non codée et l'analyseur tolérant corrigera les « % » isolés non suivis de deux caractères hexadécimaux. Dans DecodedMode, les caractères « % » représentent eux-mêmes et les caractères encodés ne sont pas autorisés.
QUrl::DecodedMode Il convient d’utiliser cette option lors de la définition du chemin à partir d’une source de données qui n’est pas une URL, comme une boîte de dialogue affichée à l’utilisateur ou un chemin obtenu en appelant path() avec l’option de formatage QUrl::FullyDecoded.
Voir également path().
void QUrl::setPort(int port)
Définit le port de l'URL sur port. Le port fait partie de l'autorité de l'URL, comme décrit dans setAuthority().
port La valeur doit être comprise entre 0 et 65535 inclus. Définir le port sur -1 indique que celui-ci n'est pas spécifié.
Voir également port().
void QUrl::setQuery(const QString &query, QUrl::ParsingMode mode = TolerantMode)
Définit la chaîne de requête de l'URL sur query.
Cette fonction est utile si vous devez transmettre une chaîne de requête qui ne correspond pas au modèle clé-valeur, ou qui utilise un schéma d'encodage des caractères spéciaux différent de celui proposé par QUrl.
Le fait de transmettre la valeur QString() à query ( QString nul) supprime complètement la requête. En revanche, transmettre la valeur QString(« ») définira la requête sur une valeur vide, comme si l’URL d’origine ne comportait qu’un seul « ? ».
Les données de query sont interprétées conformément à mode: dans StrictMode, tout caractère « % » doit être suivi exactement de deux caractères hexadécimaux et certains caractères (y compris l’espace) ne sont pas autorisés sous forme non codée. Dans TolerantMode, tous les caractères sont acceptés sous forme non codée et l’analyseur tolérant corrigera les « % » isolés non suivis de deux caractères hexadécimaux. Dans DecodedMode, les caractères « % » représentent eux-mêmes et les caractères encodés ne sont pas autorisés.
Les chaînes de requête contiennent souvent des séquences encodées en pourcentage ; l’utilisation de DecodedMode est donc déconseillée. Il convient de prêter une attention particulière à la séquence du signe « plus » (« + »). QUrl ne convertit pas les espaces en signes « plus », contrairement aux formulaires HTML envoyés par les navigateurs web. Pour représenter un véritable signe « plus » dans une requête, on utilise généralement la séquence « %2B ». Cette fonction laisse les séquences « %2B » inchangées dans TolerantMode ou StrictMode.
Voir également query() et hasQuery().
void QUrl::setQuery(const QUrlQuery &query)
Définit la chaîne de requête de l'URL sur query.
Cette fonction reconstitue la chaîne de requête à partir de l'objet QUrlQuery et l'attribue à cet objet QUrl. Cette fonction ne dispose pas de paramètres d'analyse, car l'QUrlQuery contient des données déjà analysées.
Il s’agit d’une fonction surchargée.
Voir également query() et hasQuery().
void QUrl::setScheme(const QString &scheme)
Définit le schéma de l'URL sur scheme. Étant donné qu'un schéma ne peut contenir que des caractères ASCII, aucune conversion ni aucun décodage n'est effectué sur la valeur d'entrée. Il doit également commencer par une lettre ASCII.
Le schéma décrit le type (ou protocole) de l'URL. Il est représenté par un ou plusieurs caractères ASCII au début de l'URL.
Un schéma est strictement conforme à la norme RFC 3986: scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
L'exemple suivant montre une URL dont le schéma est « ftp » :

Pour définir le schéma, on utilise l’appel suivant :
QUrl url;
url.setScheme("ftp");Le schéma peut également être vide, auquel cas l’URL est interprétée comme relative.
Voir également scheme() et isRelative().
void QUrl::setUrl(const QString &url, QUrl::ParsingMode parsingMode = TolerantMode)
Analyse url et attribue cette valeur à cet objet. QUrl effectue automatiquement l'encodage en pourcentage de tous les caractères non autorisés dans une URL et décode les séquences encodées en pourcentage qui représentent un caractère non réservé (lettres, chiffres, tirets, traits de soulignement, points et tildes). Tous les autres caractères conservent leur forme d'origine.
Analyse la chaîne url en utilisant le mode d’analyse parsingMode. En mode TolerantMode (par défaut), QUrl corrigera certaines erreurs, notamment la présence d’un caractère pourcentage (« % ») non suivi de deux chiffres hexadécimaux, et acceptera n’importe quel caractère à n’importe quelle position. En mode « StrictMode », les erreurs d’encodage ne seront pas tolérées et QUrl vérifiera également que certains caractères interdits ne sont pas présents sous leur forme non encodée. Si une erreur est détectée en mode « StrictMode », isValid() renverra « false ». Le mode d’analyse DecodedMode n’est pas autorisé dans ce contexte et générera un avertissement d’exécution.
Voir également url() et toString().
void QUrl::setUserInfo(const QString &userInfo, QUrl::ParsingMode mode = TolerantMode)
Définit les informations utilisateur de l'URL sur userInfo. Les informations utilisateur constituent une partie facultative de l'autorité de l'URL, comme décrit dans setAuthority().
Les informations d'utilisateur se composent d'un nom d'utilisateur et, éventuellement, d'un mot de passe, séparés par un « : ». Si le mot de passe est vide, le deux-points doit être omis. L'exemple suivant illustre une chaîne d'informations d'utilisateur valide :

Les données de userInfo sont interprétées conformément à mode: dans StrictMode, tout caractère « % » doit être suivi d’exactement deux caractères hexadécimaux et certains caractères (y compris l’espace) ne sont pas autorisés sous leur forme non décodée. Dans TolerantMode (valeur par défaut), tous les caractères sont acceptés sous forme non décodée et l’analyseur tolérant corrigera les caractères « % » isolés non suivis de deux caractères hexadécimaux.
Cette fonction ne permet pas de définir mode comme QUrl::DecodedMode. Pour définir des données entièrement décodées, appelez setUserName() et setPassword() séparément.
Voir également userInfo(), setUserName(), setPassword() et setAuthority().
void QUrl::setUserName(const QString &userName, QUrl::ParsingMode mode = DecodedMode)
Définit le nom d'utilisateur de l'URL sur userName. L'userName fait partie de l'élément « user info » (informations sur l'utilisateur) dans l'autorité de l'URL, comme décrit dans setUserInfo().
Les données « userName » sont interprétées conformément à mode: dans StrictMode, tout caractère « % » doit être suivi d'exactement deux caractères hexadécimaux et certains caractères (y compris l'espace) ne sont pas autorisés sous leur forme non décodée. Dans TolerantMode (valeur par défaut), tous les caractères sont acceptés sous forme non codée et l'analyseur tolérant corrigera les caractères « % » isolés non suivis de deux caractères hexadécimaux. Dans DecodedMode, les caractères « % » représentent eux-mêmes et les caractères codés ne sont pas autorisés.
QUrl::DecodedMode Cette option doit être utilisée lors de la configuration du nom d’utilisateur à partir d’une source de données qui n’est pas une URL, comme une boîte de dialogue de mot de passe affichée à l’utilisateur ou avec un nom d’utilisateur obtenu en appelant userName() avec l’option de formatage QUrl::FullyDecoded.
Voir également userName() et setUserInfo().
[noexcept] void QUrl::swap(QUrl &other)
Remplace cette URL par other. Cette opération est très rapide et ne pose jamais de problème.
[static, since 6.3] QByteArray QUrl::toAce(const QString &domain, QUrl::AceProcessingOptions options = {})
Renvoie l'encodage compatible ASCII du nom de domaine donné domain. Le résultat peut être personnalisé en passant des indicateurs via options. Le résultat de cette fonction est considéré comme équivalent à domain.
L'encodage compatible ASCII (ACE) est défini par les RFC 3490, 3491 et 3492 et mis à jour par la norme technique Unicode n° 46. Il fait partie de la spécification IDNA (Internationalizing Domain Names in Applications), qui permet d'écrire des noms de domaine (tels que "example.com") à l'aide de caractères non US-ASCII.
Cette fonction renvoie un QByteArray vide si domain n'est pas un nom d'hôte valide. Notez notamment que les littéraux IPv6 ne constituent pas des noms de domaine valides.
Cette fonction a été introduite dans Qt 6.3.
CFURLRef QUrl::toCFURL() const
Crée un CFURL à partir d'un QUrl.
L'appelant est propriétaire du CFURL et est chargé de le libérer.
QString QUrl::toDisplayString(QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) const
Renvoie une représentation sous forme de chaîne de caractères lisible par l'utilisateur de l'URL. La sortie peut être personnalisée en passant des indicateurs avec options. L'option RemovePassword est toujours activée, car les mots de passe ne doivent jamais être affichés aux utilisateurs.
Avec les options par défaut, l’ QString ainsi obtenue peut être transmise ultérieurement à une fonction QUrl, mais tout mot de passe présent initialement sera perdu.
Voir également FormattingOptions, toEncoded() et toString().
QByteArray QUrl::toEncoded(QUrl::FormattingOptions options = FullyEncoded) const
Renvoie la représentation encodée de l'URL si celle-ci est valide ; dans le cas contraire, un objet vide de type ` QByteArray ` est renvoyé. La sortie peut être personnalisée en passant des indicateurs via ` options`.
Les informations utilisateur, le chemin d'accès et le fragment sont tous convertis en UTF-8, puis tous les caractères non ASCII sont encodés en pourcentage. Le nom d'hôte est encodé à l'aide de Punycode.
QString QUrl::toLocalFile() const
Renvoie le chemin d'accès de cette URL sous la forme d'un chemin d'accès local. Le chemin renvoyé utilisera des barres obliques, même s'il a été initialement créé à partir d'un chemin comportant des barres obliques inversées.
Si cette URL contient un nom d'hôte non vide, celui-ci sera encodé dans la valeur renvoyée sous la forme utilisée sur les réseaux SMB (par exemple, « //servername/path/to/file.txt »).
qDebug() << QUrl("file:file.txt").toLocalFile(); // "file.txt"
qDebug() << QUrl("file:/home/user/file.txt").toLocalFile(); // "/home/user/file.txt"
qDebug() << QUrl("file.txt").toLocalFile(); // ""; wasn't a local file as it had no schemeRemarque : si une partie du chemin d'accès de cette URL contient une séquence binaire non UTF-8 (telle que %80), le comportement de cette fonction n'est pas défini.
Voir également fromLocalFile() et isLocalFile().
NSURL *QUrl::toNSURL() const
Crée un NSURL à partir d'un QUrl.
Le NSURL est libéré automatiquement.
[static] QByteArray QUrl::toPercentEncoding(const QString &input, const QByteArray &exclude = QByteArray(), const QByteArray &include = QByteArray())
Renvoie une copie encodée de ` input`. ` input ` est d'abord converti en UTF-8, puis tous les caractères ASCII n'appartenant pas au groupe des caractères non réservés sont encodés en pourcentage. Pour empêcher l'encodage en pourcentage de certains caractères, transmettez-les à ` exclude`. Pour forcer l'encodage en pourcentage de certains caractères, transmettez-les à ` include`.
Le terme « non réservé » est défini comme suit : ALPHA / DIGIT / "-" / "." / "_" / "~"
QByteArray ba = QUrl::toPercentEncoding("{une chaîne suspecte ?}", "{}", "s");
qDebug(ba.constData());
// affiche « {a fi%73hy %73tring%3F} »QString QUrl::toString(QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) const
Renvoie une représentation sous forme de chaîne de caractères de l'URL. Le résultat peut être personnalisé en passant des indicateurs avec l'option « options ». L'option « QUrl::FullyDecoded » n'est pas autorisée dans cette fonction, car elle générerait des données ambiguës.
L'option de formatage par défaut est ` PrettyDecoded`.
Voir également FormattingOptions, url() et setUrl().
[static] QStringList QUrl::toStringList(const QList<QUrl> &urls, QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded))
Convertit une liste d'objets ` urls ` en une liste d'objets ` QString `, à l'aide de la fonction ` toString` (options).
QString QUrl::url(QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) const
Renvoie une représentation sous forme de chaîne de caractères de l'URL. La sortie peut être personnalisée en passant des indicateurs via ` options`. L'option ` QUrl::FullyDecoded ` n'est pas autorisée dans cette fonction, car elle générerait des données ambiguës.
L'QString résultante peut être transmise ultérieurement à un QUrl.
Synonyme de ` toString(options)`.
Voir également setUrl(), FormattingOptions, toEncoded() et toString().
QString QUrl::userInfo(QUrl::ComponentFormattingOptions options = PrettyDecoded) const
Renvoie les informations utilisateur de l'URL, ou une chaîne vide si ces informations ne sont pas définies.
Cette fonction renvoie une valeur sans ambiguïté, qui peut contenir des caractères encore encodés en pourcentage, ainsi que certaines séquences de contrôle non représentables sous forme décodée dans QString.
L’argument options contrôle le formatage du composant d’informations utilisateur. La valeur QUrl::FullyDecoded n’est pas autorisée dans cette fonction. Si vous avez besoin d’obtenir des données entièrement décodées, appelez les fonctions userName() et password() séparément.
Voir également setUserInfo(), userName(), password() et authority().
QString QUrl::userName(QUrl::ComponentFormattingOptions options = FullyDecoded) const
Renvoie le nom d’utilisateur de l’URL s’il est défini ; sinon, une chaîne vide est renvoyée.
L'argument options contrôle le formatage de la composante « nom d'utilisateur ». Toutes les valeurs produisent un résultat sans ambiguïté. Avec QUrl::FullyDecoded, toutes les séquences encodées en pourcentage sont décodées ; sinon, la valeur renvoyée peut contenir certaines séquences encodées en pourcentage pour certaines séquences de contrôle non représentables sous forme décodée dans QString.
Notez que la valeur « QUrl::FullyDecoded » peut entraîner une perte de données si ces séquences non représentables sont présentes. Il est recommandé d’utiliser cette valeur lorsque le résultat sera utilisé dans un contexte autre qu’une URL, par exemple pour définir une valeur dans « QAuthenticator » ou pour négocier une connexion.
Voir également setUserName() et userInfo().
[noexcept] QUrl &QUrl::operator=(QUrl &&other)
Cette opération attribue l'other à cette instance QUrl.
QUrl &QUrl::operator=(const QString &url)
Attribue l'url spécifiée à cet objet.
Cet opérateur n'est pas disponible lorsque la macro QT_NO_URL_CAST_FROM_STRING est définie.
[noexcept] QUrl &QUrl::operator=(const QUrl &url)
Attribue l'url ion spécifiée à cet objet.
Éléments non membres associés
[noexcept] bool operator!=(const QUrl &lhs, const QUrl &rhs)
Renvoie « true » si les URL « lhs » et « rhs » ne sont pas identiques ; sinon, renvoie « false ».
Voir également matches().
QDataStream &operator<<(QDataStream &out, const QUrl &url)
Écrit l'URL url dans le flux out et renvoie une référence à ce flux.
Voir également le format des opérateurs QDataStream.
[noexcept] bool operator==(const QUrl &lhs, const QUrl &rhs)
Renvoie true si les URL lhs et rhs sont équivalentes ; sinon, renvoie false.
Voir également matches().
QDataStream &operator>>(QDataStream &in, QUrl &url)
Lit une URL dans un objet ` url ` à partir du flux ` in ` et renvoie une référence à ce flux.
Voir également le format des opérateurs QDataStream.
Documentation sur les macros
QT_NO_URL_CAST_FROM_STRING
Désactive les conversions automatiques de ` QString ` (ou `char *`) vers ` QUrl`.
Compiler votre code avec cette définition est utile lorsque vous disposez d’une grande quantité de code utilisant QString pour les noms de fichiers et que vous souhaitez le convertir pour utiliser QUrl afin d’assurer la transparence du réseau. Dans tout code utilisant QUrl, cela peut aider à éviter les appels manquants à QUrl::resolved() et d’autres utilisations incorrectes des conversions de QString vers QUrl.
Par exemple, si vous avez un code tel que
url = filename; // probably not what you wantvous pouvez le réécrire ainsi :
Voir également QT_NO_CAST_FROM_ASCII.
© 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.