Skip to content

Instantly share code, notes, and snippets.

@leogout
Created January 5, 2019 10:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save leogout/d76aaa0856f785021a7dd28fed4255ce to your computer and use it in GitHub Desktop.
Save leogout/d76aaa0856f785021a7dd28fed4255ce to your computer and use it in GitHub Desktop.
A gist that simplifies fetching data with Qt5.12 with a JavaScript flavor.
#include <QtNetwork/QNetworkReply>
#include <iostream>
#include "Fetcher.h"
void Fetcher::get(QString url, std::function<void(QNetworkReply *)> callback) {
int id = m_id++;
QNetworkReply *reply = m_nam.get(QNetworkRequest(QUrl(url)));
m_replies.insert(id, reply);
connect(reply, &QNetworkReply::finished, this, [&, id, callback]() {
QNetworkReply *r = m_replies.take(id);
callback(r);
r->deleteLater();
});
}
#include <QtNetwork/QNetworkAccessManager>
#include <QtCore/QHash>
#include <QtCore/QSignalMapper>
class Fetcher : public QObject {
Q_OBJECT
int m_id = 0;
QNetworkAccessManager m_nam;
QHash<int, QNetworkReply*> m_replies;
public:
void get(QString url, std::function<void(QNetworkReply *)>);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment