没有这样的信号 QNetworkAccessManager::sslErrors

No such signal QNetworkAccessManager::sslErrors

我正在尝试处理从 QWebPage 继承的自定义 class 网页中的 sslErrors。

WebPage::WebPage()
{
    connect(
        networkAccessManager(),
        SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError> & )),
        this,
        SLOT(handleSslErrors(QNetworkReply*, const QList<QSslError> & )));
}

但是有一个运行时错误:

QObject::connect: No such signal QNetworkAccessManager::sslErrors(QNetworkReply*, const QList<QSslError> & )

我该如何解决这个问题?

试试这个(修饰符 const 和引用 & 应该省略):

WebPage::WebPage()
{
    connect(
        networkAccessManager(),
        SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),
        this,
        SLOT(handleSslErrors(QNetworkReply*,QList<QSslError>)));
}

如果您使用的是 Qt Creator,它应该可以帮助您正确地自动完成此操作。

解决方案是重新编译支持 SSL 的 Qt,在我的例子中使用 OpenSSL:

configure -developer-build -opensource -nomake examples -nomake tests -icu -I C:\ICU\include -L C:\ICU\lib -openssl -I C:\openssl\include -L C:\openssl\lib