带参数的插槽如何连接信号?

时间:2018-02-06 13:45:45

标签: c++ qt signals-slots

这些是通过HTTP QNetworkAccessManager下载文件的类的成员函数:

Downloader::Downloader(QObject *parent) : QObject(parent)
{
    manager = new QNetworkAccessManager();
    connect(manager, &QNetworkAccessManager::finished, this, &Downloader::onResult);
}

// ...

void Downloader::onResult(QNetworkReply *reply)
{
    if(reply->error()){
        qDebug() << "ERROR";
        qDebug() << reply->errorString();
    } else {
        QFile *file = new QFile("C:/example/file.xml");
        if(file->open(QFile::WriteOnly)){
            file->write(reply->readAll()); 
            file->close();
        emit onReady();
        }
    }
}

如果此参数未在构造函数中的onResult中传递,reply如何使用connectonResult在哪里得到它?这不是一个错误,班级正常运作。

UPD:我found out信号QNetworkAccessManager::finished有一个参数QNetworkReply *reply。我想这与这种情况有关,但我不知道它是怎么回事。

0 个答案:

没有答案