QNetworkAccessManager-没有这样的信号 [英] QNetworkAccessManager - No such signal

查看:260
本文介绍了QNetworkAccessManager-没有这样的信号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

void MainWindow::handleGetReply(QNetworkReply  *reply)
{
    qDebug() << reply;
}

void MainWindow::on_getDetailsButton_clicked()
{
    QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    connect(
                manager,
                SIGNAL(finished(QNetwokReply *reply)),
                this,
                SLOT(handleGetReply(QNetworkReply*)));
    manager->get(QNetworkRequest(QUrl("http://google.com")));
}

由于某种原因,这不起作用,并且我收到以下消息:

For some reason this doesn't work, and I have the following message:

QObject::connect: No such signal QNetworkAccessManager::finished(QNetwokReply *reply) in ..\MyApplication\mainwindow.cpp:63
QObject::connect:  (receiver name: 'MainWindow')

推荐答案

使用SIGNAL和SLOT宏连接信号时,只需要传递信号传输的数据类型,在这种情况下,应该是:

When you connect the signal using the SIGNAL and SLOT macros, you only need to pass the type of data that the signal transports, in your case it should be:

connect(manager, 
        SIGNAL(finished(QNetworkReply *)), 
        this, 
        SLOT(handleGetReply(QNetworkReply*)));

尽管建议使用新语法:

connect(manager, 
        &QNetworkAccessManager::finished, 
        this, 
        &MainWindow::handleGetReply);

这篇关于QNetworkAccessManager-没有这样的信号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆