Al fine di garantire la compatibilità con Qt
4, aggiungere le seguenti righe nella parte superiore del file:
#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
# include <QUrlQuery>
#endif
Questo significa che QUrlQuery
sarà solo #include
d se si sta compilando contro Qt
5.0.0 o maggiore.
quindi aggiungere la seguente riga sopra il codice specificato nella domanda:
#if QT_VERSION < QT_VERSION_CHECK(5,0,0)
e quindi inserire il codice sotto il codice specificato nella domanda:
#else
QUrlQuery q;
foreach (const settings::PostItem & pi, settings.post)
q.addQueryItem(pi.name, pi.value);
postData = q.query(QUrl::FullyEncoded).toUtf8();
#endif
NOTA: toUtf8()
è utilizzato perché postData
è un e query()
restituisce un QString
. toAscii()
è stato dichiarato obsoleto in Qt
5, ma UTF-8 è un sottoinsieme di ASCII con caratteri Unicode solo quando necessario.
EDIT: Nel caso in cui si desidera utilizzare un vero e proprio QUrl
che ha una parte URL, aggiungere questo:
QUrl url;
url.setQuery(q);