我正在尝试使用QsignalMapper在完成的SIGNAL上将我的String传递给img_loaded函数。但是我没有任何结果,请帮忙。
QString mystring = "value";
QNetworkAccessManager *m_netwManager = new QNetworkAccessManager(this);
QUrl url("http://images.gs-cdn.net/static/albums/80_9299765.jpg");
QNetworkRequest request(url);
connect(m_netwManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(img_loaded(QNetworkReply*)));
void MainWindow::img_loaded(QNetworkReply *rep){
//Handle my String here
}
Run Code Online (Sandbox Code Playgroud)
小智 5
如果要提供其他参数来标识networkReply,请尝试以下操作:
void myClass::downloadMedia(QString url, int mediaType, int messageID)
{
bool connect_result;
QNetworkAccessManager *manager2 = new QNetworkAccessManager(this);
connect_result = connect(manager2, SIGNAL(finished(QNetworkReply*)),
this, SLOT(onMediaDownloaded(QNetworkReply*)));
Q_ASSERT(connect_result);
QNetworkReply* reply = manager2->get(QNetworkRequest(url));
// Here are the additional parameters
reply->setProperty("mediaType", mediaType);
reply->setProperty("messageID", messageID);
}
Run Code Online (Sandbox Code Playgroud)
而且有插槽
void myClass::onMediaDownloaded(QNetworkReply *reply)
{
int mediaType = reply->property("mediaType").toInt();
int messageID = reply->property("messageID").toInt();
switch (mediaType) {
// Handle different media types
.....
}
}
Run Code Online (Sandbox Code Playgroud)