Qt 信号增值

Qt 信号增值,qt,qt-signals,Qt,Qt Signals,这就是任务:我捕捉信号 QNetworkAccessManager* manager= new QNetworkAccessManager(this); connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(parse_data_request(QNetworkReply*))); connect(manager, &QNetworkAccessManager::finished, manager, &QNet

这就是任务:我捕捉信号

QNetworkAccessManager* manager= new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(parse_data_request(QNetworkReply*)));
connect(manager, &QNetworkAccessManager::finished, manager,
&QNetworkAccessManager::deleteLater,Qt::QueuedConnection);
我想用QNetworkReply*发送到插槽parse_data_request int变量,如下所示:

QNetworkAccessManager* manager= new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*,int)), this, SLOT(parse_data_request(QNetworkReply*,int)));
connect(manager, &QNetworkAccessManager::finished, manager,
&QNetworkAccessManager::deleteLater,Qt::QueuedConnection);
我该怎么做?

如果您使用的是Qt5(看起来是),那么您可以使用lambda作为连接的目标

int request_id = ...;
QNetworkAccessManager* manager= new QNetworkAccessManager(this);
connect(manager, &QNetworkAccessManager::finished, this,
        [this, request_id](QNetworkReply *reply)
        {
            parse_data_request(reply, request_id);
        });
connect(manager, &QNetworkAccessManager::finished, manager, &QNetworkAccessManager::deleteLater,Qt::QueuedConnection);
如果您使用的是Qt5(看起来是),那么您可以使用lambda作为连接的目标

int request_id = ...;
QNetworkAccessManager* manager= new QNetworkAccessManager(this);
connect(manager, &QNetworkAccessManager::finished, this,
        [this, request_id](QNetworkReply *reply)
        {
            parse_data_request(reply, request_id);
        });
connect(manager, &QNetworkAccessManager::finished, manager, &QNetworkAccessManager::deleteLater,Qt::QueuedConnection);

额外的
int
参数表示什么?当您进行
connect
调用时,它的值是否已知?是的,它的存在值、请求计数,我想知道哪个请求返回已完成。额外的
int
参数表示什么?当您进行
connect
调用时,是否知道其值?是的,它的存在值、请求计数,我想知道哪个请求返回已完成。谢谢,这是帮助!谢谢,这很有帮助!