QUrl Class
Die Klasse QUrl bietet eine praktische Schnittstelle für die Arbeit mit URLs. Mehr...
Kopfzeile: | #include <QUrl> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QUrl ist Teil von Input/Output and Networking, Network Programming API, und Implicitly Shared Classes.
Diese Klasse ist schwach vergleichbar.
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Typen
(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 |
Öffentliche Funktionen
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) |
Statische öffentliche Mitglieder
(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)) |
Verwandte Nicht-Mitglieder
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) |
Makros
Detaillierte Beschreibung
QUrl kann URLs sowohl in kodierter als auch in unkodierter Form analysieren und konstruieren. QUrl unterstützt auch internationalisierte Domänennamen (IDNs).
Die gebräuchlichste Art, QUrl zu verwenden, ist die Initialisierung über den Konstruktor durch Übergabe einer QString mit einer vollständigen URL. QUrl-Objekte können auch aus einer QByteArray mit einer vollständigen URL mit QUrl::fromEncoded() oder heuristisch aus unvollständigen URLs mit QUrl::fromUserInput() erstellt werden. Die URL-Darstellung kann von einem QUrl entweder mit QUrl::toString() oder QUrl::toEncoded() erhalten werden.
URLs können in zwei Formen dargestellt werden: kodiert oder unkodiert. Die unkodierte Darstellung eignet sich für die Anzeige gegenüber den Benutzern, aber die kodierte Darstellung ist normalerweise das, was Sie an einen Webserver senden würden. So würde beispielsweise die nicht kodierte URL "http://bühler.example.com/List of applicants.xml" als "http://xn-bhler-kva.example.com/List%20of%20applicants.xml" an den Server gesendet werden.
Eine URL kann auch Stück für Stück durch die Aufrufe setScheme(), setUserName(), setPassword(), setHost(), setPort(), setPath(), setQuery() und setFragment() aufgebaut werden. Es sind auch einige Komfortfunktionen verfügbar: setAuthority() setzt den Benutzernamen, das Passwort, den Host und den Port. setUserInfo() setzt den Benutzernamen und das Passwort auf einmal.
Rufen Sie isValid() auf, um zu prüfen, ob die URL gültig ist. Dies kann zu jedem Zeitpunkt des Aufbaus einer URL geschehen. Wenn isValid() false
zurückgibt, sollten Sie clear() die URL überprüfen, bevor Sie fortfahren, oder Sie beginnen mit setUrl() eine neue URL zu analysieren.
Die Konstruktion einer Abfrage ist besonders bequem durch die Verwendung der Klasse QUrlQuery und ihrer Methoden QUrlQuery::setQueryItems(), QUrlQuery::addQueryItem() und QUrlQuery::removeQueryItem(). Verwenden Sie QUrlQuery::setQueryDelimiters(), um die für die Generierung der Abfragezeichenfolge verwendeten Begrenzungszeichen anzupassen.
Um kodierte URL-Strings oder Abfrage-Strings zu erzeugen, gibt es zwei statische Funktionen namens fromPercentEncoding() und toPercentEncoding(), die sich mit der prozentualen Kodierung und Dekodierung von QString Objekten befassen.
fromLocalFile() konstruiert eine QUrl durch Parsen eines lokalen Dateipfades. toLocalFile() konvertiert eine URL in einen lokalen Dateipfad.
Die menschenlesbare Darstellung der URL wird mit toString() abgerufen. Diese Darstellung ist geeignet, um einem Benutzer eine URL in unverschlüsselter Form zu zeigen. Die verschlüsselte Form hingegen, wie sie von toEncoded() zurückgegeben wird, ist für den internen Gebrauch, die Weitergabe an Webserver, Mail-Clients usw. bestimmt. Beide Formen sind technisch korrekt und stellen eindeutig dieselbe URL dar - tatsächlich ergibt die Übergabe einer der beiden Formen an den QUrl-Konstruktor oder an setUrl() dasselbe QUrl-Objekt.
QUrl ist konform mit der URI-Spezifikation aus RFC 3986 (Uniform Resource Identifier: Generic Syntax) und enthält Schema-Erweiterungen aus RFC 1738 (Uniform Resource Locators). Die Regeln zur Groß-/Kleinschreibung in QUrl entsprechen RFC 3491 (Nameprep: A Stringprep Profile for Internationalized Domain Names (IDN)). Es ist auch kompatibel mit der Datei-URI-Spezifikation von freedesktop.org, vorausgesetzt, dass das Gebietsschema Dateinamen mit UTF-8 kodiert (erforderlich für IDN).
Relative URLs gegenüber relativen Pfaden
Der Aufruf von isRelative() gibt zurück, ob die URL relativ ist oder nicht. Eine relative URL hat keine scheme. Zum Beispiel:
qDebug()<< QUrl("main.qml").isRelative(); // true: kein Schema 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" scheme
Beachten Sie, dass eine URL absolut sein kann, während sie einen relativen Pfad enthält, und andersherum:
// Absolute URL, relativer Pfad QUrl url("datei:datei.txt"); qDebug() << url.isRelative(); // false: has "file" scheme qDebug() << QDir::isAbsolutePath(url.path()); // false: relative path // Relative URL, absoluter Pfadurl = QUrl("/home/user/file.txt"); qDebug() << url.isRelative(); // true: has no scheme qDebug() << QDir::isAbsolutePath(url.path()); // true: absolute path
Eine relative URL kann aufgelöst werden, indem sie als Argument an resolved() übergeben wird, das eine absolute URL zurückgibt. isParentOf() wird verwendet, um festzustellen, ob eine URL ein Elternteil einer anderen ist.
Fehlerprüfung
QUrl ist in der Lage, viele Fehler in URLs zu erkennen, während sie geparst werden oder wenn Komponenten der URL mit einzelnen Setter-Methoden gesetzt werden (wie setScheme(), setHost() oder setPath()). Wenn die Parsing- oder Setter-Funktion erfolgreich ist, werden alle zuvor aufgezeichneten Fehlerbedingungen verworfen.
Standardmäßig arbeiten die QUrl-Setter-Methoden in QUrl::TolerantMode, was bedeutet, dass sie einige häufige Fehler und falsche Darstellungen von Daten akzeptieren. Eine alternative Parsing-Methode ist QUrl::StrictMode, die weitere Prüfungen durchführt. Unter QUrl::ParsingMode finden Sie eine Beschreibung der Unterschiede zwischen den Parsing-Modi.
QUrl prüft nur die Konformität mit der URL-Spezifikation. Es versucht nicht zu überprüfen, ob die High-Level-Protokoll-URLs in dem Format vorliegen, das von anderen Handlern erwartet wird. Zum Beispiel werden die folgenden URIs von QUrl als gültig angesehen, auch wenn sie bei der Verwendung keinen Sinn ergeben:
- "http:/filename.html"
- "mailto://example.com"
Wenn der Parser auf einen Fehler stößt, signalisiert er dies, indem isValid() false und toString() / toEncoded() einen leeren String zurückgeben. Wenn es notwendig ist, dem Benutzer den Grund zu zeigen, warum die URL nicht geparst werden konnte, kann die Fehlerbedingung von QUrl durch den Aufruf von errorString() erhalten werden. Beachten Sie, dass diese Meldung sehr technisch ist und für den Endbenutzer möglicherweise keinen Sinn ergibt.
QUrl ist in der Lage, nur eine Fehlerbedingung aufzuzeichnen. Wenn mehr als ein Fehler gefunden wird, ist es undefiniert, welcher Fehler gemeldet wird.
Zeichenumwandlungen
Befolgen Sie diese Regeln, um fehlerhafte Zeichenumwandlungen beim Umgang mit URLs und Strings zu vermeiden:
- Wenn Sie eine QString erstellen, die eine URL aus einer QByteArray oder einem char* enthält, verwenden Sie immer QString::fromUtf8().
Dokumentation der Mitgliedstypen
[since 6.3]
enum QUrl::AceProcessingOption
flags QUrl::AceProcessingOptions
Die ACE-Verarbeitungsoptionen steuern die Art und Weise, wie URLs in und aus ASCII-kompatibler Kodierung umgewandelt werden.
Konstante | Wert | Beschreibung |
---|---|---|
QUrl::IgnoreIDNWhitelist | 0x1 | Ignoriert die IDN-Whitelist bei der Umwandlung von URLs in Unicode. |
QUrl::AceTransitionalProcessing | 0x2 | Verwenden Sie die in UTS #46 beschriebene Übergangsbearbeitung. Dies ermöglicht eine bessere Kompatibilität mit der IDNA 2003-Spezifikation. |
Die Standardeinstellung ist, nicht-übergangsweise zu verarbeiten und Nicht-ASCII-Zeichen nur innerhalb von URLs zuzulassen, deren Top-Level-Domains in der IDN-Whitelist aufgeführt sind.
Dieses Enum wurde in Qt 6.3 eingeführt.
Der Typ AceProcessingOptions ist ein Typedef für QFlags<AceProcessingOption>. Er speichert eine OR-Kombination von AceProcessingOption-Werten.
Siehe auch toAce(), fromAce(), und idnWhitelist().
enum QUrl::ComponentFormattingOption
flags QUrl::ComponentFormattingOptions
Die Komponentenformatierungsoptionen legen fest, wie die Komponenten einer URL formatiert werden, wenn sie als Text ausgegeben werden. Sie können mit den Optionen von QUrl::FormattingOptions kombiniert werden, wenn sie in toString() und toEncoded() verwendet werden.
Konstante | Wert | Beschreibung |
---|---|---|
QUrl::PrettyDecoded | 0x000000 | Die Komponente wird in einer "hübschen Form" zurückgegeben, wobei die meisten prozentual kodierten Zeichen dekodiert sind. Das genaue Verhalten von PrettyDecoded variiert von Komponente zu Komponente und kann sich auch von Qt Release zu Qt Release ändern. Dies ist die Voreinstellung. |
QUrl::EncodeSpaces | 0x100000 | Lassen Sie Leerzeichen in ihrer kodierten Form ("%20"). |
QUrl::EncodeUnicode | 0x200000 | Belassen Sie Nicht-US-ASCII-Zeichen in ihrer UTF-8 Prozent-kodierten Form (z.B. "%C3%A9" für den U+00E9-Codepunkt, LATIN SMALL LETTER E WITH ACUTE). |
QUrl::EncodeDelimiters | 0x400000 | 0x800000 | Belassen Sie bestimmte Begrenzungszeichen in ihrer kodierten Form, wie sie in der URL erscheinen würden, wenn die vollständige URL als Text dargestellt wird. Die Begrenzungszeichen, die von dieser Option betroffen sind, ändern sich von Komponente zu Komponente. Diese Markierung hat keine Auswirkung in toString() oder toEncoded(). |
QUrl::EncodeReserved | 0x1000000 | US-ASCII-Zeichen, die nach der Spezifikation in der URL nicht zulässig sind, in ihrer kodierten Form belassen. Dies ist die Voreinstellung bei toString() und toEncoded(). |
QUrl::DecodeReserved | 0x2000000 | Dekodiere die US-ASCII-Zeichen, die nach der URL-Spezifikation nicht in der URL erscheinen dürfen. Dies ist die Vorgabe für die Getter der einzelnen Komponenten. |
QUrl::FullyEncoded | EncodeSpaces | EncodeUnicode | EncodeDelimiters | EncodeReserved | Lassen Sie alle Zeichen in ihrer korrekt kodierten Form, wie diese Komponente als Teil einer URL erscheinen würde. In Verbindung mit toString() ergibt dies eine vollständig konforme URL in der Form QString, die genau dem Ergebnis von toEncoded() entspricht. |
QUrl::FullyDecoded | FullyEncoded | DecodeReserved | 0x4000000 | Versuchen Sie, so viel wie möglich zu entschlüsseln. Für einzelne Komponenten der URL wird jede prozentuale Kodierungssequenz dekodiert, einschließlich Steuerzeichen (U+0000 bis U+001F) und UTF-8-Sequenzen, die in prozentual kodierter Form gefunden werden. Die Verwendung dieses Modus kann zu Datenverlusten führen, siehe unten für weitere Informationen. |
Die Werte von EncodeReserved und DecodeReserved sollten nicht zusammen in einem Aufruf verwendet werden. Das Verhalten ist undefiniert, wenn dies geschieht. Sie werden als separate Werte bereitgestellt, da das Verhalten des "Pretty Mode" in Bezug auf reservierte Zeichen bei bestimmten Komponenten und insbesondere bei der vollständigen URL unterschiedlich ist.
Vollständige Dekodierung
Der FullyDecoded-Modus ähnelt dem Verhalten der Funktionen, die QString in Qt 4.x zurückgeben, indem jedes Zeichen sich selbst darstellt und nie eine besondere Bedeutung hat. Dies gilt sogar für das Prozentzeichen ('%'), das als buchstäbliches Prozentzeichen und nicht als Anfang einer prozentkodierten Sequenz interpretiert werden sollte. Dasselbe tatsächliche Zeichen wird in allen anderen Dekodierungsmodi durch die Sequenz "%25" dargestellt.
Wenn Sie Daten, die Sie mit QUrl::FullyDecoded erhalten haben, in ein QUrl einfügen, müssen Sie darauf achten, den Parameter QUrl::DecodedMode für die Setter (wie setPath() und setUserName()) zu verwenden. Andernfalls kann es zu einer Neuinterpretation des Prozentzeichens ("%") als Beginn einer prozentual kodierten Sequenz kommen.
Dieser Modus ist sehr nützlich, wenn Teile einer URL in einem Nicht-URL-Kontext verwendet werden. Um z. B. den Benutzernamen, das Passwort oder die Dateipfade in einer FTP-Client-Anwendung zu extrahieren, sollte der Modus FullyDecoded verwendet werden.
Dieser Modus sollte mit Vorsicht verwendet werden, da es zwei Bedingungen gibt, die in der zurückgegebenen QString nicht zuverlässig dargestellt werden können. Diese sind:
- Nicht-UTF-8-Sequenzen: URLs können Sequenzen von prozentual kodierten Zeichen enthalten, die keine gültigen UTF-8-Sequenzen bilden. Da URLs mit UTF-8 dekodiert werden müssen, führt jeder Dekodierfehler dazu, dass QString ein oder mehrere Ersatzzeichen an der Stelle enthält, an der die Sequenz vorhanden war.
- Kodierte Begrenzungszeichen: URLs dürfen auch zwischen einem Begrenzungszeichen in seiner wörtlichen Form und seinem Äquivalent in prozentual kodierter Form unterscheiden. Dies ist am häufigsten in der Abfrage zu finden, ist aber in den meisten Teilen der URL erlaubt.
Das folgende Beispiel veranschaulicht das Problem:
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&c
Würden die beiden URLs über HTTP GET verwendet, wäre die Interpretation durch den Webserver wahrscheinlich unterschiedlich. Im ersten Fall würde er sie als einen Parameter interpretieren, mit dem Schlüssel "q" und dem Wert "a+=b&c". Im zweiten Fall würde es wahrscheinlich als zwei Parameter interpretiert werden, einer mit dem Schlüssel "q" und dem Wert "a =b" und der zweite mit dem Schlüssel "c" und keinem Wert.
Der Typ ComponentFormattingOptions ist ein Typedef für QFlags<ComponentFormattingOption>. Er speichert eine OR-Kombination von ComponentFormattingOption-Werten.
Siehe auch QUrl::FormattingOptions.
enum QUrl::ParsingMode
Der Parsing-Modus steuert die Art und Weise, wie QUrl Zeichenketten parst.
Konstante | Wert | Beschreibung |
---|---|---|
QUrl::TolerantMode | 0 | QUrl wird versuchen, einige häufige Fehler in URLs zu korrigieren. Dieser Modus ist nützlich für das Parsen von URLs, die aus Quellen stammen, von denen nicht bekannt ist, dass sie streng standardkonform sind. |
QUrl::StrictMode | 1 | Es werden nur gültige URLs akzeptiert. Dieser Modus ist für die allgemeine URL-Validierung nützlich. |
QUrl::DecodedMode | 2 | QUrl interpretiert die URL-Komponente in vollständig dekodierter Form, wobei die Prozentzeichen für sich selbst stehen und nicht als Beginn einer prozentual kodierten Sequenz. Dieser Modus ist nur für die Setzer gültig, die Komponenten einer URL setzen; er ist im QUrl -Konstruktor, in fromEncoded() oder in setUrl() nicht zulässig. Weitere Informationen zu diesem Modus finden Sie in der Dokumentation zu QUrl::FullyDecoded. |
Im TolerantMode hat der Parser folgendes Verhalten:
- Leerzeichen und "%20": Nicht kodierte Leerzeichen werden akzeptiert und als gleichwertig mit "%20" behandelt.
- Einzelne "%"-Zeichen: Jedes Vorkommen eines Prozentzeichens "%", das nicht von genau zwei hexadezimalen Zeichen gefolgt wird (z. B. "13% coverage.html"), wird durch "%25" ersetzt. Beachten Sie, dass ein einzelnes "%"-Zeichen den Korrekturmodus für alle Prozentzeichen auslöst.
- Reservierte und nicht reservierte Zeichen: Eine kodierte URL sollte nur einige wenige Zeichen als Literale enthalten; alle anderen Zeichen sollten prozentual kodiert werden. Im TolerantMode werden diese Zeichen akzeptiert, wenn sie in der URL vorkommen: Leerzeichen / Anführungszeichen / "<" / ">" / "" / "^" / "`" / "{" / "|" / "}" Dieselben Zeichen können wieder dekodiert werden, indem QUrl::DecodeReserved an toString() oder toEncoded() übergeben wird. In den Gettern der einzelnen Komponenten werden diese Zeichen oft in dekodierter Form zurückgegeben.
Wenn im StrictMode ein Parsing-Fehler festgestellt wird, gibt isValid() false
zurück und errorString() gibt eine Nachricht zurück, die den Fehler beschreibt. Wenn mehr als ein Fehler festgestellt wird, ist es nicht definiert, welcher Fehler gemeldet wird.
Beachten Sie, dass TolerantMode normalerweise nicht ausreicht, um Benutzereingaben zu parsen, die oft mehr Fehler und Erwartungen enthalten, als der Parser verarbeiten kann. Beim Umgang mit Daten, die direkt vom Benutzer kommen - im Gegensatz zu Daten, die aus Datenübertragungsquellen wie anderen Programmen stammen - wird empfohlen, fromUserInput() zu verwenden.
Siehe auch fromUserInput(), setUrl(), toString(), toEncoded(), und QUrl::FormattingOptions.
enum QUrl::UrlFormattingOption
flags QUrl::FormattingOptions
Die Formatierungsoptionen legen fest, wie die URL formatiert wird, wenn sie als Text ausgegeben wird.
Konstante | Wert | Beschreibung |
---|---|---|
QUrl::None | 0x0 | Das Format der URL ist unverändert. |
QUrl::RemoveScheme | 0x1 | Das Schema wird aus der URL entfernt. |
QUrl::RemovePassword | 0x2 | Jedes Passwort in der URL wird entfernt. |
QUrl::RemoveUserInfo | RemovePassword | 0x4 | Alle Benutzerinformationen in der URL werden entfernt. |
QUrl::RemovePort | 0x8 | Jeder angegebene Port wird aus der URL entfernt. |
QUrl::RemoveAuthority | RemoveUserInfo | RemovePort | 0x10 | |
QUrl::RemovePath | 0x20 | Der Pfad der URL wird entfernt, so dass nur das Schema, die Host-Adresse und der Port (falls vorhanden) übrig bleiben. |
QUrl::RemoveQuery | 0x40 | Der Abfrageteil der URL (nach einem '?'-Zeichen) wird entfernt. |
QUrl::RemoveFragment | 0x80 | |
QUrl::RemoveFilename | 0x800 | Der Dateiname (d. h. alles nach dem letzten '/' im Pfad) wird entfernt. Das abschließende '/' wird beibehalten, es sei denn, StripTrailingSlash ist gesetzt. Nur gültig, wenn RemovePath nicht gesetzt ist. |
QUrl::PreferLocalFile | 0x200 | Wenn die URL eine lokale Datei gemäß isLocalFile() ist und keine Abfrage oder kein Fragment enthält, wird ein lokaler Dateipfad zurückgegeben. |
QUrl::StripTrailingSlash | 0x400 | Der abschließende Schrägstrich wird aus dem Pfad entfernt, sofern er vorhanden ist. |
QUrl::NormalizePathSegments | 0x1000 | Ändert den Pfad, um überflüssige Verzeichnistrennzeichen zu entfernen und um ". "s und ".. "s aufzulösen (soweit möglich). Bei nicht-lokalen Pfaden werden benachbarte Schrägstriche beibehalten. |
Beachten Sie, dass die Regeln zur Groß-/Kleinschreibung in Nameprep, denen QUrl entspricht, erfordern, dass Hostnamen immer in Kleinbuchstaben umgewandelt werden, unabhängig von den verwendeten Qt::FormattingOptions.
Die Optionen von QUrl::ComponentFormattingOptions sind ebenfalls möglich.
Der Typ FormattingOptions ist ein Typedef für QFlags<UrlFormattingOption>. Er speichert eine ODER-Kombination von UrlFormattingOption-Werten.
Siehe auch QUrl::ComponentFormattingOptions.
enum QUrl::UserInputResolutionOption
flags QUrl::UserInputResolutionOptions
Die Optionen zur Auflösung von Benutzereingaben legen fest, wie fromUserInput() Zeichenketten interpretieren soll, die entweder ein relativer Pfad oder die Kurzform einer HTTP-URL sein können. Zum Beispiel kann file.pl
entweder eine lokale Datei oder die URL http://file.pl
sein.
Konstante | Wert | Beschreibung |
---|---|---|
QUrl::DefaultResolution | 0 | Der Standardauflösungsmechanismus prüft, ob eine lokale Datei in dem an fromUserInput übergebenen Arbeitsverzeichnis existiert, und gibt nur in diesem Fall einen lokalen Pfad zurück. Andernfalls wird eine URL angenommen. |
QUrl::AssumeLocalFile | 1 | Diese Option bewirkt, dass fromUserInput() immer einen lokalen Pfad zurückgibt, es sei denn, die Eingabe enthält ein Schema, wie http://file.pl . Dies ist nützlich für Anwendungen wie Texteditoren, die in der Lage sind, die Datei zu erstellen, wenn sie nicht vorhanden ist. |
Der Typ UserInputResolutionOptions ist ein Typedef für QFlags<UserInputResolutionOption>. Er speichert eine OR-Kombination von UserInputResolutionOption-Werten.
Siehe auch fromUserInput().
Dokumentation der Mitgliedsfunktionen
QUrl::QUrl()
Konstruiert ein leeres QUrl-Objekt.
QUrl::QUrl(const QString &url, QUrl::ParsingMode parsingMode = TolerantMode)
Konstruiert eine URL durch Parsen von url. Beachten Sie, dass dieser Konstruktor eine korrekte URL oder URL-Referenz erwartet und nicht versucht, die Absicht zu erraten. Zum Beispiel die folgende Deklaration:
QUrl url("example.com");
Konstruiert eine gültige URL, die aber möglicherweise nicht den Erwartungen entspricht, da der scheme()-Teil der Eingabe fehlt. Für eine Zeichenkette wie die obige möchten Anwendungen vielleicht fromUserInput() verwenden. Für diesen Konstruktor oder setUrl() ist wahrscheinlich das Folgende beabsichtigt:
QUrl url("https://example.com");
QUrl kodiert automatisch alle Zeichen, die in einer URL nicht erlaubt sind, und dekodiert die prozentual kodierten Sequenzen, die ein nicht reserviertes Zeichen darstellen (Buchstaben, Ziffern, Bindestriche, Unterstriche, Punkte und Tilden). Alle anderen Zeichen werden in ihrer ursprünglichen Form belassen.
Parst die url unter Verwendung des Parsermodus parsingMode. Im Modus TolerantMode (Standardeinstellung) korrigiert QUrl bestimmte Fehler, insbesondere das Vorhandensein eines Prozentzeichens ("%"), auf das nicht zwei hexadezimale Ziffern folgen, und akzeptiert jedes Zeichen an jeder Position. In StrictMode werden Kodierungsfehler nicht toleriert, und QUrl prüft auch, ob bestimmte verbotene Zeichen nicht in unverschlüsselter Form vorhanden sind. Wenn in StrictMode ein Fehler festgestellt wird, gibt isValid() false zurück. Der Parsing-Modus DecodedMode ist in diesem Zusammenhang nicht erlaubt.
Beispiel:
QUrl url("http://www.example.com/List of holidays.xml"); // url.toEncoded() == "http://www.example.com/List%20of%20holidays.xml"
Um eine URL aus einer kodierten Zeichenkette zu konstruieren, können Sie auch fromEncoded() verwenden:
Beide Funktionen sind gleichwertig und in Qt 5 akzeptieren beide Funktionen kodierte Daten. Normalerweise hängt die Wahl des QUrl-Konstruktors oder setUrl() versus fromEncoded() von den Quelldaten ab: Der Konstruktor und setUrl() nehmen ein QString, während fromEncoded ein QByteArray nimmt.
Siehe auch setUrl(), fromEncoded(), und TolerantMode.
[noexcept]
QUrl::QUrl(const QUrl &other)
Konstruiert eine Kopie von other.
[noexcept]
QUrl::QUrl(QUrl &&other)
Move-konstruiert eine QUrl-Instanz, die auf das gleiche Objekt zeigt, auf das other gezeigt hat.
[noexcept]
QUrl::~QUrl()
Destruktor; wird aufgerufen, unmittelbar bevor das Objekt gelöscht wird.
QUrl QUrl::adjusted(QUrl::FormattingOptions options) const
Gibt eine angepasste Version der URL zurück. Die Ausgabe kann durch Übergabe von Flags mit options angepasst werden.
Die Kodierungsoptionen von QUrl::ComponentFormattingOption sind für diese Methode nicht sehr sinnvoll, ebenso wenig wie QUrl::PreferLocalFile.
Dies ist immer gleichbedeutend mit QUrl(url.toString(options)).
Siehe auch FormattingOptions, toEncoded(), und toString().
QString QUrl::authority(QUrl::ComponentFormattingOptions options = PrettyDecoded) const
Gibt die Autorität der URL zurück, wenn sie definiert ist; andernfalls wird ein leerer String zurückgegeben.
Diese Funktion gibt einen eindeutigen Wert zurück, der die Zeichen enthalten kann, die noch prozentual kodiert sind, sowie einige Steuersequenzen, die in QString nicht in dekodierter Form dargestellt werden können.
Das Argument options steuert, wie die Benutzerinformationskomponente formatiert werden soll. Der Wert von QUrl::FullyDecoded ist in dieser Funktion nicht zulässig. Wenn Sie vollständig dekodierte Daten benötigen, rufen Sie userName(), password(), host() und port() einzeln auf.
Siehe auch setAuthority(), userInfo(), userName(), password(), host(), und port().
void QUrl::clear()
Setzt den Inhalt von QUrl zurück. Nach dem Aufruf dieser Funktion ist QUrl gleich demjenigen, der mit dem Standard-Leer-Konstruktor erstellt wurde.
Siehe auch isEmpty().
QString QUrl::errorString() const
Gibt eine Fehlermeldung zurück, wenn bei der letzten Operation, die dieses QUrl Objekt verändert hat, ein Parsing-Fehler aufgetreten ist. Wurde kein Fehler festgestellt, gibt diese Funktion eine leere Zeichenkette zurück und isValid() gibt true
zurück.
Die von dieser Funktion zurückgegebene Fehlermeldung ist technischer Natur und wird von Endbenutzern möglicherweise nicht verstanden. Sie ist hauptsächlich für Entwickler nützlich, die versuchen zu verstehen, warum QUrl eine bestimmte Eingabe nicht akzeptiert.
Siehe auch QUrl::ParsingMode.
QString QUrl::fileName(QUrl::ComponentFormattingOptions options = FullyDecoded) const
Gibt den Namen der Datei zurück, ohne den Verzeichnispfad.
Wird diesem QUrl -Objekt ein Pfad übergeben, der mit einem Schrägstrich endet, wird der Name der Datei als leer betrachtet.
Enthält der Pfad keinen Schrägstrich, wird er vollständig als Dateiname zurückgegeben.
Beispiel:
QUrl url("http://qt-project.org/support/file.html"); // url.adjusted(RemoveFilename) == "http://qt-project.org/support/" // url.fileName() == "file.html"
Das Argument options bestimmt, wie die Dateinamenkomponente formatiert werden soll. Alle Werte ergeben ein eindeutiges Ergebnis. Mit QUrl::FullyDecoded werden alle prozentual kodierten Sequenzen dekodiert; andernfalls kann der zurückgegebene Wert einige prozentual kodierte Sequenzen für einige Steuersequenzen enthalten, die nicht in dekodierter Form in QString dargestellt werden können.
Siehe auch path().
QString QUrl::fragment(QUrl::ComponentFormattingOptions options = PrettyDecoded) const
Gibt das Fragment der URL zurück. Um festzustellen, ob die geparste URL ein Fragment enthält, verwenden Sie hasFragment().
Das Argument options steuert, wie die Fragmentkomponente formatiert werden soll. Alle Werte ergeben ein eindeutiges Ergebnis. Mit QUrl::FullyDecoded werden alle prozentual kodierten Sequenzen dekodiert; andernfalls kann der zurückgegebene Wert einige prozentual kodierte Sequenzen für einige Steuersequenzen enthalten, die nicht in dekodierter Form in QString dargestellt werden können.
Beachten Sie, dass QUrl::FullyDecoded zu Datenverlusten führen kann, wenn diese nicht darstellbaren Sequenzen vorhanden sind. Es wird empfohlen, diesen Wert zu verwenden, wenn das Ergebnis in einem Nicht-URL-Kontext verwendet werden soll.
Siehe auch setFragment() und hasFragment().
[static, since 6.3]
QString QUrl::fromAce(const QByteArray &domain, QUrl::AceProcessingOptions options = {})
Gibt die Unicode-Form des angegebenen Domänennamens domain zurück, die in der ASCII-kompatiblen Kodierung (ACE) kodiert ist. Die Ausgabe kann durch Übergabe von Flags mit options angepasst werden. Das Ergebnis dieser Funktion wird als äquivalent zu domain betrachtet.
Wenn der Wert in domain nicht kodiert werden kann, wird er in QString umgewandelt und zurückgegeben.
Die ASCII-kompatible Kodierung (ACE) wird durch RFC 3490, RFC 3491 und RFC 3492 definiert und durch den Unicode Technical Standard #46 aktualisiert. Sie ist Teil der Spezifikation Internationalizing Domain Names in Applications (IDNA), die es ermöglicht, Domainnamen (wie "example.com"
) mit Nicht-US-ASCII-Zeichen zu schreiben.
Diese Funktion wurde in Qt 6.3 eingeführt.
[static]
QUrl QUrl::fromCFURL(CFURLRef url)
Konstruiert eine QUrl, die eine Kopie der CFURL url enthält.
[static]
QUrl QUrl::fromEncoded(QByteArrayView input, QUrl::ParsingMode mode = TolerantMode)
Analysiert input und gibt die entsprechende QUrl zurück. input wird in kodierter Form angenommen und enthält nur ASCII-Zeichen.
Analysiert die URL mit mode. Siehe setUrl() für weitere Informationen zu diesem Parameter. QUrl::DecodedMode ist in diesem Zusammenhang nicht erlaubt.
Hinweis: In Qt-Versionen vor 6.7 nahm diese Funktion ein QByteArray, nicht QByteArrayView. Wenn Sie Kompilierfehler erhalten, liegt das daran, dass Ihr Code Objekte übergibt, die implizit in QByteArray konvertierbar sind, aber nicht in QByteArrayView. Wickeln Sie das entsprechende Argument in QByteArray{~~~}
ein, um den Cast explizit zu machen. Dies ist rückwärtskompatibel mit alten Qt-Versionen.
Siehe auch toEncoded() und setUrl().
[static]
QUrl QUrl::fromLocalFile(const QString &localFile)
Gibt eine QUrl Darstellung von localFile zurück, die als lokale Datei interpretiert wird. Diese Funktion akzeptiert Pfade, die durch Schrägstriche getrennt sind, sowie das native Trennzeichen für diese Plattform.
Diese Funktion akzeptiert auch Pfade mit einem doppelten führenden Schrägstrich (oder Backslash), um eine entfernte Datei anzuzeigen, wie in "//servername/path/to/file.txt". Beachten Sie, dass nur bestimmte Plattformen diese Datei tatsächlich mit QFile::open() öffnen können.
Eine leere localFile führt zu einer leeren URL (seit 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 scheme
In der ersten Zeile des obigen Ausschnitts wird ein Datei-URL aus einem lokalen, relativen Pfad konstruiert. Eine Datei-URL mit einem relativen Pfad ist nur dann sinnvoll, wenn es eine Basis-URL gibt, gegen die sie aufgelöst werden kann. Zum Beispiel:
QUrl url = QUrl::fromLocalFile("file.txt"); QUrl baseUrl = QUrl("file:/home/user/"); // falsch: gibt QUrl("file:file.txt") aus, da url bereits ein Schema hat qDebug() << baseUrl.resolved(url);
Um eine solche URL aufzulösen, muss man das Schema vorher entfernen:
// korrekt: prints QUrl("file:///home/user/file.txt")url.setScheme(QString()); qDebug() << baseUrl.resolved(url);
Aus diesem Grund ist es besser, für relative Dateipfade eine relative URL (d. h. kein Schema) zu verwenden:
QUrl url = QUrl("datei.txt"); QUrl baseUrl = QUrl("file:/home/user/"); // gibt QUrl("file:///home/user/file.txt") aus qDebug() << baseUrl.resolved(url);
Siehe auch toLocalFile(), isLocalFile(), und QDir::toNativeSeparators().
[static]
QUrl QUrl::fromNSURL(const NSURL *url)
Konstruiert eine QUrl, die eine Kopie der NSURL url enthält.
[static]
QString QUrl::fromPercentEncoding(const QByteArray &input)
Gibt eine dekodierte Kopie von input zurück. input wird zunächst aus der Prozentkodierung dekodiert und dann von UTF-8 in Unicode konvertiert.
Hinweis: Bei einer ungültigen Eingabe (z. B. eine Zeichenfolge mit der Sequenz "%G5", die keine gültige Hexadezimalzahl ist) ist auch die Ausgabe ungültig. Als Beispiel: Die Sequenz "%G5" könnte zu 'W' dekodiert werden.
[static]
QList<QUrl> QUrl::fromStringList(const QStringList &urls, QUrl::ParsingMode mode = TolerantMode)
Konvertiert eine Liste von Strings, die urls repräsentieren, in eine Liste von URLs unter Verwendung von QUrl(str, mode). Beachten Sie, dass dies bedeutet, dass alle Strings URLs sein müssen, nicht etwa lokale Pfade.
[static]
QUrl QUrl::fromUserInput(const QString &userInput, const QString &workingDirectory = QString(), QUrl::UserInputResolutionOptions options = DefaultResolution)
Gibt eine gültige URL aus einer vom Benutzer angegebenen userInput Zeichenkette zurück, sofern eine solche abgeleitet werden kann. Falls dies nicht möglich ist, wird ein ungültiger QUrl() zurückgegeben.
Dies ermöglicht es dem Benutzer, eine URL oder einen lokalen Dateipfad in Form einer einfachen Zeichenfolge einzugeben. Diese Zeichenfolge kann manuell in eine Adressleiste eingegeben, aus der Zwischenablage entnommen oder über Befehlszeilenargumente übergeben werden.
Wenn die Zeichenkette nicht bereits eine gültige URL ist, wird eine bestmögliche Schätzung vorgenommen, wobei verschiedene Annahmen getroffen werden.
Entspricht die Zeichenkette einem gültigen Dateipfad auf dem System, wird eine file:// URL unter Verwendung von QUrl::fromLocalFile() erstellt.
Ist dies nicht der Fall, wird versucht, die Zeichenkette in eine http:// oder ftp:// URL zu verwandeln. Letzteres ist der Fall, wenn die Zeichenkette mit "ftp" beginnt. Das Ergebnis wird dann durch den toleranten Parser von QUrl geleitet, und im Erfolgsfall wird eine gültige QUrl zurückgegeben, andernfalls eine QUrl().
Beispiele:
- qt-project.org wird zu http://qt-project.org
- ftp.qt-project.org wird zu ftp://ftp.qt-project.org
- hostname wird zu http://hostname
- /home/user/test.html wird zu file:///home/user/test.html
Um relative Pfade behandeln zu können, nimmt diese Methode einen optionalen workingDirectory Pfad an. Dies ist besonders nützlich bei der Behandlung von Befehlszeilenargumenten. Wenn workingDirectory leer ist, werden keine relativen Pfade verarbeitet.
Standardmäßig wird ein Eingabe-String, der wie ein relativer Pfad aussieht, nur dann als solcher behandelt, wenn die Datei tatsächlich im angegebenen Arbeitsverzeichnis existiert. Wenn die Anwendung mit Dateien umgehen kann, die noch nicht existieren, sollte sie das Flag AssumeLocalFile in options übergeben.
bool QUrl::hasFragment() const
Gibt true
zurück, wenn diese URL ein Fragment enthält (d. h., wenn # darauf gesehen wurde).
Siehe auch fragment() und setFragment().
bool QUrl::hasQuery() const
Gibt true
zurück, wenn diese URL eine Abfrage enthält (d. h., wenn ? darauf gesehen wurde).
Siehe auch setQuery(), query(), und hasFragment().
QString QUrl::host(QUrl::ComponentFormattingOptions options = FullyDecoded) const
Gibt den Host der URL zurück, wenn er definiert ist; andernfalls wird eine leere Zeichenkette zurückgegeben.
Das Argument options bestimmt, wie der Hostname formatiert wird. Die Option QUrl::EncodeUnicode veranlasst diese Funktion, den Hostnamen in der ASCII-kompatiblen Kodierung (ACE) zurückzugeben, die für die Verwendung in Kanälen geeignet ist, die nicht 8-Bit-sauber sind oder die den alten Hostnamen erfordern (wie DNS-Anfragen oder in HTTP-Anfrage-Headern). Wenn dieses Flag nicht vorhanden ist, gibt diese Funktion den internationalen Domänennamen (IDN) in Unicode-Form zurück, entsprechend der Liste der zulässigen Top-Level-Domänen (siehe idnWhitelist()).
Alle anderen Flags werden ignoriert. Hostnamen können keine Steuer- oder Prozentzeichen enthalten, so dass der zurückgegebene Wert als vollständig dekodiert betrachtet werden kann.
Siehe auch setHost(), idnWhitelist(), setIdnWhitelist(), und authority().
[static]
QStringList QUrl::idnWhitelist()
Gibt die aktuelle Whitelist der Top-Level-Domains zurück, die Nicht-ASCII-Zeichen in ihren Zusammensetzungen enthalten dürfen.
Siehe setIdnWhitelist() für die Gründe für diese Liste.
Siehe auch setIdnWhitelist() und AceProcessingOption.
bool QUrl::isEmpty() const
Gibt true
zurück, wenn die URL keine Daten enthält; andernfalls wird false
zurückgegeben.
Siehe auch clear().
bool QUrl::isLocalFile() const
Gibt true
zurück, wenn diese URL auf einen lokalen Dateipfad verweist. Eine URL ist ein lokaler Dateipfad, wenn das Schema "file" ist.
Beachten Sie, dass diese Funktion URLs mit Hostnamen als lokale Dateipfade betrachtet, auch wenn der eventuelle Dateipfad nicht mit QFile::open() geöffnet werden kann.
Siehe auch fromLocalFile() und toLocalFile().
bool QUrl::isParentOf(const QUrl &childUrl) const
Gibt true
zurück, wenn diese URL ein übergeordnetes Element von childUrl ist. childUrl ist ein untergeordnetes Element dieser URL, wenn die beiden URLs dasselbe Schema und dieselbe Autorität haben und der Pfad dieser URL ein übergeordnetes Element des Pfads von childUrl ist.
bool QUrl::isRelative() const
Gibt true
zurück, wenn die URL relativ ist; andernfalls wird false
zurückgegeben. Eine URL ist eine relative Referenz, wenn ihr Schema undefiniert ist; diese Funktion ist daher äquivalent zum Aufruf von scheme().isEmpty().
Relative Referenzen sind in RFC 3986 Abschnitt 4.2 definiert.
Siehe auch Relative URLs vs Relative Paths.
bool QUrl::isValid() const
Gibt true
zurück, wenn die URL nicht leer und gültig ist; andernfalls wird false
zurückgegeben.
Die URL wird einem Konformitätstest unterzogen. Jeder Teil der URL muss mit den Standardkodierungsregeln des URI-Standards übereinstimmen, damit die URL als gültig gemeldet wird.
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
Gibt true
zurück, wenn diese URL und die angegebene url nach Anwendung von options auf beide gleich sind; andernfalls wird false
zurückgegeben.
Dies ist gleichbedeutend mit dem Aufruf von adjusted(options) für beide URLs und dem Vergleich der resultierenden URLs, aber schneller.
QString QUrl::password(QUrl::ComponentFormattingOptions options = FullyDecoded) const
Gibt das Passwort der URL zurück, wenn es definiert ist; andernfalls wird eine leere Zeichenfolge zurückgegeben.
Das Argument options steuert, wie die Komponente Benutzername formatiert werden soll. Alle Werte ergeben ein eindeutiges Ergebnis. Mit QUrl::FullyDecoded werden alle prozentual kodierten Sequenzen dekodiert; andernfalls kann der zurückgegebene Wert einige prozentual kodierte Sequenzen für einige Steuersequenzen enthalten, die nicht in dekodierter Form in QString dargestellt werden können.
Beachten Sie, dass QUrl::FullyDecoded zu Datenverlusten führen kann, wenn diese nicht darstellbaren Sequenzen vorhanden sind. Es wird empfohlen, diesen Wert zu verwenden, wenn das Ergebnis in einem Nicht-URL-Kontext verwendet wird, z. B. bei der Einstellung in QAuthenticator oder bei der Aushandlung eines Logins.
Siehe auch setPassword().
QString QUrl::path(QUrl::ComponentFormattingOptions options = FullyDecoded) const
Gibt den Pfad der URL zurück.
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"
Das Argument options steuert, wie die Pfadkomponente formatiert werden soll. Alle Werte ergeben ein eindeutiges Ergebnis. Mit QUrl::FullyDecoded werden alle prozentual kodierten Sequenzen dekodiert; andernfalls kann der zurückgegebene Wert einige prozentual kodierte Sequenzen für einige Steuersequenzen enthalten, die nicht in dekodierter Form in QString dargestellt werden können.
Beachten Sie, dass QUrl::FullyDecoded zu Datenverlusten führen kann, wenn diese nicht darstellbaren Sequenzen vorhanden sind. Es wird empfohlen, diesen Wert zu verwenden, wenn das Ergebnis in einem Nicht-URL-Kontext verwendet wird, z. B. beim Senden an einen FTP-Server.
Ein Beispiel für einen Datenverlust ist, wenn Sie nicht Unicode-prozentkodierte Sequenzen haben und FullyDecoded (die Vorgabe) verwenden:
In diesem Beispiel kommt es zu einem gewissen Datenverlust, da die %FF
nicht konvertiert werden kann.
Datenverluste können auch auftreten, wenn der Pfad Sub-Delimiter enthält (z. B. +
):
Andere Dekodierungsbeispiele:
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"
Siehe auch setPath().
int QUrl::port(int defaultPort = -1) const
Gibt den Port der URL zurück, oder defaultPort, wenn der Port nicht angegeben ist.
Beispiel:
QTcpSocket sock; sock.connectToHost(url.host(), url.port(80));
Siehe auch setPort().
QString QUrl::query(QUrl::ComponentFormattingOptions options = PrettyDecoded) const
Gibt den Query-String der URL zurück, wenn ein Query-String vorhanden ist, oder ein leeres Ergebnis, wenn nicht. Um festzustellen, ob die geparste URL eine Abfragezeichenfolge enthält, verwenden Sie hasQuery().
Das Argument options bestimmt, wie die Abfragekomponente formatiert werden soll. Alle Werte ergeben ein eindeutiges Ergebnis. Mit QUrl::FullyDecoded werden alle prozentual kodierten Sequenzen dekodiert; andernfalls kann der zurückgegebene Wert einige prozentual kodierte Sequenzen für einige Steuersequenzen enthalten, die nicht in dekodierter Form in QString dargestellt werden können.
Beachten Sie, dass von der Verwendung von QUrl::FullyDecoded in Abfragen abgeraten wird, da Abfragen oft Daten enthalten, die prozentual kodiert bleiben sollen, einschließlich der Verwendung der "%2B"-Sequenz zur Darstellung eines Pluszeichens ("+").
Siehe auch setQuery() und hasQuery().
QUrl QUrl::resolved(const QUrl &relative) const
Gibt das Ergebnis der Zusammenführung dieser URL mit relative zurück. Diese URL wird als Basis für die Umwandlung von relative in eine absolute URL verwendet.
Wenn relative keine relative URL ist, gibt diese Funktion direkt relative zurück. Andernfalls werden die Pfade der beiden URLs verschmolzen, und die neue URL, die zurückgegeben wird, hat das Schema und die Autorität der Basis-URL, aber mit dem verschmolzenen Pfad, wie im folgenden Beispiel:
QUrl baseUrl("http://qt.digia.com/Support/");QUrl relativeUrl("../Produkt/Bibliothek/");qDebug(baseUrl.resolved(relativeUrl).toString()); // gibt "http://qt.digia.com/Product/Library/" aus
Der Aufruf von resolved() mit ".." gibt eine QUrl zurück, deren Verzeichnis eine Ebene höher liegt als das Original. In ähnlicher Weise entfernt der Aufruf von resolved() mit "../.." zwei Ebenen aus dem Pfad. Wenn relative "/" ist, wird der Pfad zu "/".
Siehe auch isRelative().
QString QUrl::scheme() const
Gibt das Schema der URL zurück. Wird eine leere Zeichenkette zurückgegeben, bedeutet dies, dass das Schema undefiniert ist und die URL dann relativ ist.
Das Schema kann nur US-ASCII-Buchstaben oder -Ziffern enthalten, d. h. es darf keine Zeichen enthalten, die sonst eine Kodierung erfordern würden. Außerdem werden Schemata immer in Kleinbuchstaben zurückgegeben.
Siehe auch setScheme() und isRelative().
void QUrl::setAuthority(const QString &authority, QUrl::ParsingMode mode = TolerantMode)
Setzt die Autorität der URL auf authority.
Die Autorität einer URL ist die Kombination aus Benutzerinformationen, einem Hostnamen und einem Port. Alle diese Elemente sind optional; eine leere Autorität ist daher gültig.
Die Benutzerangaben und der Host werden durch ein "@", der Host und der Port durch ein ":" voneinander getrennt. Wenn die Benutzerinformation leer ist, muss das '@' weggelassen werden; ein leeres ':' ist jedoch zulässig, wenn der Port leer ist.
Das folgende Beispiel zeigt einen gültigen Autorisierungsstring:
Die Daten von authority werden gemäß mode interpretiert: In StrictMode müssen auf jedes '%'-Zeichen genau zwei hexadezimale Zeichen folgen, und einige Zeichen (einschließlich Leerzeichen) sind in undecodierter Form nicht zulässig. In TolerantMode (der Standardeinstellung) werden alle Zeichen in undekodierter Form akzeptiert, und der tolerante Parser korrigiert fehlende "%"-Zeichen, denen keine zwei Hexadezimalzeichen folgen.
Mit dieser Funktion kann mode nicht zu QUrl::DecodedMode werden. Um vollständig dekodierte Daten zu setzen, rufen Sie setUserName(), setPassword(), setHost() und setPort() einzeln auf.
Siehe auch authority(), setUserInfo(), setHost(), und setPort().
void QUrl::setFragment(const QString &fragment, QUrl::ParsingMode mode = TolerantMode)
Setzt das Fragment der URL auf fragment. Das Fragment ist der letzte Teil der URL, der durch ein "#" gefolgt von einer Zeichenkette dargestellt wird. Es wird in der Regel in HTTP verwendet, um auf einen bestimmten Link oder Punkt auf einer Seite zu verweisen:
Das Fragment wird manchmal auch als URL-"Referenz" bezeichnet.
Die Übergabe eines QString()-Arguments (eine Null QString) hebt das Fragment auf. Die Übergabe eines Arguments QString("") (ein leeres, aber nicht null QString) setzt das Fragment auf eine leere Zeichenkette (als ob die ursprüngliche URL ein einsames "#" hätte).
Die Daten von fragment werden gemäß mode interpretiert: In StrictMode müssen auf jedes "%"-Zeichen genau zwei hexadezimale Zeichen folgen, und einige Zeichen (einschließlich Leerzeichen) sind in undecodierter Form nicht zulässig. In TolerantMode werden alle Zeichen in nicht dekodierter Form akzeptiert, und der tolerante Parser korrigiert fehlende '%'-Zeichen, auf die nicht zwei Hexadezimalzeichen folgen. In DecodedMode steht '%' für sich selbst und kodierte Zeichen sind nicht möglich.
QUrl::DecodedMode sollte verwendet werden, wenn das Fragment aus einer Datenquelle gesetzt wird, die keine URL ist, oder mit einem Fragment, das durch den Aufruf von fragment() mit der Formatierungsoption QUrl::FullyDecoded erhalten wurde.
Siehe auch fragment() und hasFragment().
void QUrl::setHost(const QString &host, QUrl::ParsingMode mode = DecodedMode)
Setzt den Host der URL auf host. Der Host ist Teil der Autorität.
Die Daten von host werden gemäß mode interpretiert: In StrictMode müssen auf jedes "%"-Zeichen genau zwei hexadezimale Zeichen folgen, und einige Zeichen (einschließlich Leerzeichen) sind in undecodierter Form nicht zulässig. In TolerantMode werden alle Zeichen in nicht dekodierter Form akzeptiert, und der tolerante Parser korrigiert fehlende '%'-Zeichen, auf die nicht zwei Hexadezimalzeichen folgen. In DecodedMode steht '%' für sich selbst und kodierte Zeichen sind nicht möglich.
Beachten Sie, dass das Ergebnis des Parsens in jedem Fall ein gültiger Hostname gemäß den STD 3-Regeln in der durch die Internationalized Resource Identifiers-Spezifikation (RFC 3987) geänderten Form sein muss. Ungültige Hostnamen sind nicht zulässig und führen dazu, dass isValid() zu false wird.
Siehe auch host() und setAuthority().
[static]
void QUrl::setIdnWhitelist(const QStringList &list)
Setzt die Whitelist der Top-Level-Domains (TLDs), die Nicht-ASCII-Zeichen in Domains enthalten dürfen, auf den Wert von list.
Beachten Sie, dass Sie diese Funktion aufrufen müssen, bevor Sie einen Thread starten, der auf idnWhitelist() zugreifen könnte.
Qt wird mit einer Standardliste geliefert, die die Internet Top-Level-Domains enthält, die Unterstützung für Internationalized Domain Names (IDNs) und Regeln veröffentlicht haben, um zu garantieren, dass keine Täuschung zwischen ähnlich aussehenden Zeichen (wie dem lateinischen Kleinbuchstaben 'a'
und dem kyrillischen Äquivalent, die in den meisten Schriftarten visuell identisch sind) stattfinden kann.
Diese Liste wird in regelmäßigen Abständen aktualisiert, wenn die Registrierstellen neue Regeln veröffentlichen.
Diese Funktion wird für diejenigen bereitgestellt, die die Liste manipulieren müssen, um eine TLD hinzuzufügen oder zu entfernen. Es wird nicht empfohlen, den Wert zu anderen Zwecken als zu Testzwecken zu ändern, da dies die Benutzer einem Sicherheitsrisiko aussetzen kann.
Siehe auch idnWhitelist().
void QUrl::setPassword(const QString &password, QUrl::ParsingMode mode = DecodedMode)
Legt das Passwort der URL auf password fest. password ist Teil des User-Info-Elements in der Autorität der URL, wie in setUserInfo() beschrieben.
Die Daten von password werden gemäß mode interpretiert: In StrictMode müssen auf jedes "%"-Zeichen genau zwei hexadezimale Zeichen folgen, und einige Zeichen (einschließlich Leerzeichen) sind in undecodierter Form nicht zulässig. In TolerantMode werden alle Zeichen in nicht dekodierter Form akzeptiert, und der tolerante Parser korrigiert fehlende '%'-Zeichen, auf die nicht zwei Hexadezimalzeichen folgen. In DecodedMode steht '%' für sich selbst und kodierte Zeichen sind nicht möglich.
QUrl::DecodedMode sollte verwendet werden, wenn das Kennwort aus einer Datenquelle gesetzt wird, die keine URL ist, wie z. B. ein Kennwortdialog, der dem Benutzer angezeigt wird, oder mit einem Kennwort, das durch den Aufruf von password() mit der Formatierungsoption QUrl::FullyDecoded erhalten wurde.
Siehe auch password() und setUserInfo().
void QUrl::setPath(const QString &path, QUrl::ParsingMode mode = DecodedMode)
Setzt den Pfad der URL auf path. Der Pfad ist der Teil der URL, der nach der Autorität, aber vor der Abfragezeichenfolge kommt.
Bei nicht-hierarchischen Schemata ist der Pfad alles, was auf die Schema-Deklaration folgt, wie im folgenden Beispiel:
Die Daten von path werden gemäß mode interpretiert: In StrictMode müssen auf jedes "%"-Zeichen genau zwei hexadezimale Zeichen folgen, und einige Zeichen (einschließlich Leerzeichen) sind in undecodierter Form nicht zulässig. In TolerantMode werden alle Zeichen in nicht dekodierter Form akzeptiert, und der tolerante Parser korrigiert fehlende '%'-Zeichen, auf die nicht zwei Hexadezimalzeichen folgen. In DecodedMode steht '%' für sich selbst und kodierte Zeichen sind nicht möglich.
QUrl::DecodedMode sollte verwendet werden, wenn der Pfad von einer Datenquelle gesetzt wird, die keine URL ist, wie z. B. ein Dialog, der dem Benutzer angezeigt wird, oder mit einem Pfad, der durch den Aufruf von path() mit der Formatierungsoption QUrl::FullyDecoded erhalten wurde.
Siehe auch path().
void QUrl::setPort(int port)
Setzt den Port der URL auf port. Der Port ist Teil der Autorität der URL, wie in setAuthority() beschrieben.
port muss zwischen 0 und 65535 einschließlich liegen. Wird der Port auf -1 gesetzt, bedeutet dies, dass der Port nicht spezifiziert ist.
Siehe auch port().
void QUrl::setQuery(const QString &query, QUrl::ParsingMode mode = TolerantMode)
Setzt die Abfragezeichenfolge der URL auf query.
Diese Funktion ist nützlich, wenn Sie eine Abfragezeichenfolge übergeben müssen, die nicht in das Schlüssel-Wert-Muster passt oder die ein anderes Schema für die Kodierung von Sonderzeichen verwendet, als von QUrl vorgeschlagen wird.
Die Übergabe eines Wertes von QString() an query (eine Null QString) hebt die Abfrage vollständig auf. Die Übergabe eines Wertes von QString("") setzt die Abfrage jedoch auf einen leeren Wert, als ob die ursprüngliche URL ein einsames "?" hätte.
Die Daten von query werden gemäß mode interpretiert: In StrictMode müssen auf jedes "%"-Zeichen genau zwei hexadezimale Zeichen folgen, und einige Zeichen (einschließlich Leerzeichen) sind in undecodierter Form nicht zulässig. In TolerantMode werden alle Zeichen in nicht dekodierter Form akzeptiert, und der tolerante Parser korrigiert fehlende '%'-Zeichen, auf die nicht zwei Hexadezimalzeichen folgen. In DecodedMode steht '%' für sich selbst und kodierte Zeichen sind nicht möglich.
Abfragezeichenfolgen enthalten oft prozentual kodierte Sequenzen, daher wird von der Verwendung von DecodedMode abgeraten. Eine spezielle Sequenz, die zu beachten ist, ist das Pluszeichen ("+"). QUrl wandelt Leerzeichen nicht in Pluszeichen um, auch wenn HTML-Formulare, die von Webbrowsern angezeigt werden, dies tun. Um ein tatsächliches Pluszeichen in einer Abfrage darzustellen, wird normalerweise die Sequenz "%2B" verwendet. Diese Funktion lässt "%2B"-Sequenzen in TolerantMode oder StrictMode unangetastet.
Siehe auch query() und hasQuery().
void QUrl::setQuery(const QUrlQuery &query)
Dies ist eine überladene Funktion.
Setzt den Query-String der URL auf query.
Diese Funktion rekonstruiert die Abfragezeichenfolge aus dem Objekt QUrlQuery und setzt sie auf dieses Objekt QUrl. Diese Funktion hat keine Parsing-Parameter, da die QUrlQuery Daten enthält, die bereits geparst wurden.
Siehe auch query() und hasQuery().
void QUrl::setScheme(const QString &scheme)
Setzt das Schema der URL auf scheme. Da ein Schema nur ASCII-Zeichen enthalten kann, wird bei der Eingabe keine Konvertierung oder Dekodierung vorgenommen. Außerdem muss es mit einem ASCII-Buchstaben beginnen.
Das Schema beschreibt den Typ (oder das Protokoll) der URL. Es wird durch ein oder mehrere ASCII-Zeichen am Anfang der URL dargestellt.
Ein Schema ist streng RFC 3986-konform: scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
Das folgende Beispiel zeigt eine URL, bei der das Schema "ftp" lautet:
Um das Schema festzulegen, wird der folgende Aufruf verwendet:
QUrl url; url.setScheme("ftp");
Das Schema kann auch leer sein, in diesem Fall wird die URL als relativ interpretiert.
Siehe auch scheme() und isRelative().
void QUrl::setUrl(const QString &url, QUrl::ParsingMode parsingMode = TolerantMode)
Parst url und setzt dieses Objekt auf diesen Wert. QUrl kodiert automatisch alle Zeichen, die in einer URL nicht erlaubt sind, und dekodiert die prozentual kodierten Sequenzen, die ein nicht reserviertes Zeichen darstellen (Buchstaben, Ziffern, Bindestriche, Unterstriche, Punkte und Tilden). Alle anderen Zeichen werden in ihrer ursprünglichen Form belassen.
Parst die url unter Verwendung des Parsermodus parsingMode. In TolerantMode (der Standardeinstellung) korrigiert QUrl bestimmte Fehler, insbesondere das Vorhandensein eines Prozentzeichens ("%"), dem keine zwei hexadezimalen Ziffern folgen, und akzeptiert jedes Zeichen an jeder Position. In StrictMode werden Kodierungsfehler nicht toleriert, und QUrl prüft auch, ob bestimmte verbotene Zeichen nicht in nicht kodierter Form vorhanden sind. Wenn in StrictMode ein Fehler festgestellt wird, gibt isValid() false zurück. Der Parsing-Modus DecodedMode ist in diesem Zusammenhang nicht zulässig und führt zu einer Laufzeitwarnung.
Siehe auch url() und toString().
void QUrl::setUserInfo(const QString &userInfo, QUrl::ParsingMode mode = TolerantMode)
Setzt die Benutzerinformation der URL auf userInfo. Die Benutzerinformation ist ein optionaler Teil der Autorität der URL, wie in setAuthority() beschrieben.
Die Benutzerinfo besteht aus einem Benutzernamen und optional einem Passwort, getrennt durch ein ':'. Wenn das Kennwort leer ist, muss der Doppelpunkt weggelassen werden. Das folgende Beispiel zeigt einen gültigen Benutzerinformationsstring:
Die Daten von userInfo werden gemäß mode interpretiert: In StrictMode müssen auf jedes '%'-Zeichen genau zwei hexadezimale Zeichen folgen, und einige Zeichen (einschließlich Leerzeichen) sind in undecodierter Form nicht zulässig. In TolerantMode (der Standardeinstellung) werden alle Zeichen in undekodierter Form akzeptiert, und der tolerante Parser korrigiert fehlende "%"-Zeichen, denen keine zwei Hexadezimalzeichen folgen.
Mit dieser Funktion kann mode nicht zu QUrl::DecodedMode werden. Um vollständig dekodierte Daten zu setzen, rufen Sie setUserName() und setPassword() einzeln auf.
Siehe auch userInfo(), setUserName(), setPassword(), und setAuthority().
void QUrl::setUserName(const QString &userName, QUrl::ParsingMode mode = DecodedMode)
Setzt den Benutzernamen der URL auf userName. userName ist Teil des Benutzerinformations-Elements in der Autorität der URL, wie in setUserInfo() beschrieben.
Die Daten von userName werden gemäß mode interpretiert: In StrictMode müssen auf jedes "%"-Zeichen genau zwei hexadezimale Zeichen folgen, und einige Zeichen (einschließlich Leerzeichen) sind in undecodierter Form nicht zulässig. In TolerantMode (der Standardeinstellung) werden alle Zeichen in undekodierter Form akzeptiert, und der tolerante Parser korrigiert fehlende "%"-Zeichen, denen keine zwei Hexadezimalzeichen folgen. In DecodedMode steht '%' für sich selbst und kodierte Zeichen sind nicht möglich.
QUrl::DecodedMode sollte verwendet werden, wenn der Benutzername aus einer Datenquelle gesetzt wird, die keine URL ist, z. B. aus einem Passwort-Dialog, der dem Benutzer angezeigt wird, oder mit einem Benutzernamen, der durch den Aufruf von userName() mit der Formatierungsoption QUrl::FullyDecoded erhalten wurde.
Siehe auch userName() und setUserInfo().
[noexcept]
void QUrl::swap(QUrl &other)
Tauscht diese URL mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.
[static, since 6.3]
QByteArray QUrl::toAce(const QString &domain, QUrl::AceProcessingOptions options = {})
Gibt die ASCII-kompatible Kodierung des angegebenen Domainnamens domain zurück. Die Ausgabe kann durch Übergabe von Flags mit options angepasst werden. Das Ergebnis dieser Funktion ist äquivalent zu domain.
Die ASCII-kompatible Kodierung (ACE) wird durch RFC 3490, RFC 3491 und RFC 3492 definiert und durch den Unicode Technical Standard #46 aktualisiert. Sie ist Teil der IDNA-Spezifikation (Internationalizing Domain Names in Applications), die es ermöglicht, Domain-Namen (wie "example.com"
) mit Nicht-US-ASCII-Zeichen zu schreiben.
Diese Funktion gibt ein leeres QByteArray zurück, wenn domain kein gültiger Hostname ist. Beachten Sie insbesondere, dass IPv6-Literale keine gültigen Domainnamen sind.
Diese Funktion wurde in Qt 6.3 eingeführt.
CFURLRef QUrl::toCFURL() const
Erzeugt eine CFURL aus einer QUrl.
Der Aufrufer ist Eigentümer der CFURL und verantwortlich für deren Freigabe.
QString QUrl::toDisplayString(QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) const
Gibt eine anzeigbare String-Darstellung der URL zurück. Die Ausgabe kann durch Übergabe von Flags mit options angepasst werden. Die Option RemovePassword ist immer aktiviert, da Passwörter niemals an Benutzer zurückgegeben werden sollten.
Mit den Standardoptionen kann die resultierende QString zu einem späteren Zeitpunkt an QUrl zurückgegeben werden, wobei jedoch jedes ursprünglich vorhandene Kennwort verloren geht.
Siehe auch FormattingOptions, toEncoded(), und toString().
QByteArray QUrl::toEncoded(QUrl::FormattingOptions options = FullyEncoded) const
Gibt die kodierte Darstellung der URL zurück, wenn sie gültig ist; andernfalls wird ein leeres QByteArray zurückgegeben. Die Ausgabe kann durch Übergabe von Flags mit options angepasst werden.
Die Benutzerinformationen, der Pfad und das Fragment werden alle in UTF-8 konvertiert, und alle Nicht-ASCII-Zeichen werden dann in Prozent kodiert. Der Hostname wird mit Punycode kodiert.
QString QUrl::toLocalFile() const
Gibt den Pfad dieser URL als lokalen Dateipfad formatiert zurück. Der zurückgegebene Pfad verwendet Schrägstriche, auch wenn er ursprünglich aus einem Pfad mit Backslashes erstellt wurde.
Wenn diese URL einen nicht leeren Hostnamen enthält, wird dieser im zurückgegebenen Wert in der in SMB-Netzwerken üblichen Form kodiert (z. B. "//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 scheme
Hinweis: Wenn die Pfadkomponente dieser URL eine nicht-UTF-8-Binärsequenz enthält (z. B. %80), ist das Verhalten dieser Funktion undefiniert.
Siehe auch fromLocalFile() und isLocalFile().
NSURL *QUrl::toNSURL() const
Erzeugt eine NSURL aus einer QUrl.
Die NSURL wird automatisch wieder freigegeben.
[static]
QByteArray QUrl::toPercentEncoding(const QString &input, const QByteArray &exclude = QByteArray(), const QByteArray &include = QByteArray())
Gibt eine kodierte Kopie von input zurück. input wird zunächst in UTF-8 konvertiert, und alle ASCII-Zeichen, die nicht in der nicht reservierten Gruppe sind, werden prozentual kodiert. Um zu verhindern, dass Zeichen prozentual kodiert werden, übergeben Sie sie an exclude. Um zu erzwingen, dass Zeichen prozentual kodiert werden, übergeben Sie sie an include.
Unreserviert ist definiert als: ALPHA / DIGIT / "-" / "." / "_" / "~"
QByteArray ba = QUrl::toPercentEncoding("{ein fischiger String?}", "{}", "s");qDebug(ba.constData()); // druckt "{a fi%73hy %73tring%3F}"
QString QUrl::toString(QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) const
Gibt eine String-Darstellung der URL zurück. Die Ausgabe kann durch Übergabe von Flags mit options angepasst werden. Die Option QUrl::FullyDecoded ist in dieser Funktion nicht zulässig, da sie mehrdeutige Daten erzeugen würde.
Die Standardformatierungsoption ist PrettyDecoded.
Siehe auch FormattingOptions, url(), und setUrl().
[static]
QStringList QUrl::toStringList(const QList<QUrl> &urls, QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded))
Konvertiert eine Liste von urls in eine Liste von QString Objekten, unter Verwendung von toString(options).
QString QUrl::url(QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) const
Gibt eine String-Darstellung der URL zurück. Die Ausgabe kann durch Übergabe von Flags mit options angepasst werden. Die Option QUrl::FullyDecoded ist in dieser Funktion nicht zulässig, da sie mehrdeutige Daten erzeugen würde.
Die resultierende QString kann später an eine QUrl zurückgegeben werden.
Synonym für toString(Optionen).
Siehe auch setUrl(), FormattingOptions, toEncoded(), und toString().
QString QUrl::userInfo(QUrl::ComponentFormattingOptions options = PrettyDecoded) const
Gibt die Benutzerinformation der URL zurück, oder eine leere Zeichenkette, wenn die Benutzerinformation nicht definiert ist.
Diese Funktion gibt einen eindeutigen Wert zurück, der die Zeichen enthalten kann, die noch prozentual kodiert sind, sowie einige Steuersequenzen, die in QString nicht in dekodierter Form dargestellt werden können.
Das Argument options steuert, wie die Benutzerinfokomponente formatiert werden soll. Der Wert von QUrl::FullyDecoded ist in dieser Funktion nicht zulässig. Wenn Sie vollständig dekodierte Daten benötigen, rufen Sie userName() und password() einzeln auf.
Siehe auch setUserInfo(), userName(), password(), und authority().
QString QUrl::userName(QUrl::ComponentFormattingOptions options = FullyDecoded) const
Gibt den Benutzernamen der URL zurück, wenn er definiert ist; andernfalls wird eine leere Zeichenfolge zurückgegeben.
Das Argument options steuert, wie die Komponente Benutzername formatiert werden soll. Alle Werte ergeben ein eindeutiges Ergebnis. Mit QUrl::FullyDecoded werden alle prozentual kodierten Sequenzen dekodiert; andernfalls kann der zurückgegebene Wert einige prozentual kodierte Sequenzen für einige Steuersequenzen enthalten, die nicht in dekodierter Form in QString dargestellt werden können.
Beachten Sie, dass QUrl::FullyDecoded zu Datenverlusten führen kann, wenn diese nicht darstellbaren Sequenzen vorhanden sind. Es wird empfohlen, diesen Wert zu verwenden, wenn das Ergebnis in einem Nicht-URL-Kontext verwendet wird, z. B. bei der Einstellung in QAuthenticator oder bei der Aushandlung eines Logins.
Siehe auch setUserName() und userInfo().
[noexcept]
QUrl &QUrl::operator=(QUrl &&other)
Verschieben - weist other dieser QUrl Instanz zu.
QUrl &QUrl::operator=(const QString &url)
Weist diesem Objekt die angegebene url zu.
[noexcept]
QUrl &QUrl::operator=(const QUrl &url)
Weist diesem Objekt die angegebene url zu.
Verwandte Nicht-Mitglieder
[noexcept]
bool operator!=(const QUrl &lhs, const QUrl &rhs)
Gibt true
zurück, wenn lhs und rhs URLs nicht gleich sind; andernfalls wird false
zurückgegeben.
Siehe auch matches().
QDataStream &operator<<(QDataStream &out, const QUrl &url)
Schreibt url url in den Stream out und gibt eine Referenz auf den Stream zurück.
Siehe auch Format der QDataStream-Operatoren.
[noexcept]
bool operator==(const QUrl &lhs, const QUrl &rhs)
Gibt true
zurück, wenn lhs und rhs URLs gleichwertig sind; andernfalls false
.
Siehe auch matches().
QDataStream &operator>>(QDataStream &in, QUrl &url)
Liest eine Url in url aus dem Stream in und gibt eine Referenz auf den Stream zurück.
Siehe auch Format der QDataStream-Operatoren.
Makro-Dokumentation
QT_NO_URL_CAST_FROM_STRING
Deaktiviert die automatische Konvertierung von QString (oder char *) nach QUrl.
Die Kompilierung Ihres Codes mit dieser Definition ist nützlich, wenn Sie viel Code haben, der QString für Dateinamen verwendet, und Sie ihn in QUrl für Netzwerktransparenz umwandeln möchten. In jedem Code, der QUrl verwendet, kann es helfen, fehlende QUrl::resolved()-Aufrufe und andere missbräuchliche Umwandlungen von QString in QUrl zu vermeiden.
Wenn Sie zum Beispiel einen Code wie
url = filename; // probably not what you want
haben, können Sie ihn umschreiben als
Siehe auch QT_NO_CAST_FROM_ASCII.
© 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.