Um Kompatibilität zu gewährleisten mit Qt
4, die folgenden Zeilen am Anfang der Datei hinzufügen:
#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
# include <QUrlQuery>
#endif
Das bedeutet, dass QUrlQuery
nur #include
d sein, wenn Sie gegen Qt
5.0.0 kompilieren oder größer.
Dann fügen Sie die folgende Zeile über dem in der Frage angegebenen Code:
#if QT_VERSION < QT_VERSION_CHECK(5,0,0)
und dann diesen Code einfügen unter dem Code in der Frage angegeben:
#else
QUrlQuery q;
foreach (const settings::PostItem & pi, settings.post)
q.addQueryItem(pi.name, pi.value);
postData = q.query(QUrl::FullyEncoded).toUtf8();
#endif
HINWEIS: toUtf8()
ist verwendet, weil postData
eine QByteArray
und query()
eine QString
zurückgibt. toAscii()
wurde in Qt
5 veraltet, aber UTF-8 ist eine Teilmenge von ASCII mit Unicode-Zeichen nur bei Bedarf.
EDIT: Im Fall, dass Sie ein echtes QUrl
verwenden, die einen URL Teil hat, fügen Sie diese:
QUrl url;
url.setQuery(q);