TypeError:本机Qt信号不可调用

时间:2012-05-16 12:38:29

标签: python authentication pyqt4 basic-authentication qnetworkaccessmanager

我正在尝试向受保护的网页发出请求,因此我尝试在QAuthenticator()的帮助下进行身份验证。但是,我收到以下错误:

mgr.authenticationRequired(response, auth)
TypeError: native Qt signal is not callable

这是我脚本的一部分:

def authenticate(self):
    username = 'user'
    password = 'pass'
    url = 'http://someurl.com'

    mgr = QNetworkAccessManager(self)

    auth = QAuthenticator()
    auth.setUser(username)
    auth.setPassword(password)

    response = QNetworkRequest()
    response.setUrl(QUrl(url))     

    mgr.authenticationRequired(mgr.get(response), auth)

我在这里做错了什么?

2 个答案:

答案 0 :(得分:3)

如错误消息所示,您无法调用PyQt信号。相反,您必须使用emit()方法:

mgr.authenticationRequired.emit(mgr.get(response), auth)

答案 1 :(得分:0)

为什么要发出信号?我对该协议的理解是,当网络上的服务器想要认证时,QNAM将发出该信号。您的程序应连接到该信号,而不是发出它。 “连接到此信号的插槽应填充验证器对象中内容的凭证(可通过检查应答对象确定)。”我可能错了你正在尝试的东西。