为信号加值

问题描述 投票:0回答:1

这是任务:我捕获到来自的信号

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);

我该怎么办?

qt qt-signals
1个回答
0
投票

如果您使用的是Qt5(看起来像是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);
© www.soinside.com 2019 - 2024. All rights reserved.