Patrick Pedersen
Patrick Pedersen

Reputation: 75

TypeError: native Qt signal is not callable

I'm trying to make a request to a protected webpage, so therefore I'm trying to authenticate with help from QAuthenticator(). However, I get the following error:

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

This is a part of my script:

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)

What am I doing wrong here?

Upvotes: 3

Views: 9801

Answers (2)

bootchk
bootchk

Reputation: 2016

Why do you want to emit the signal? My understanding of the protocol is that the QNAM will emit that signal when a server across the network wants authentication. Your program should connect to that signal, not emit it. "The slot connected to this signal should fill the credentials for the contents (which can be determined by inspecting the reply object) in the authenticator object." I could be wrong about what you are attempting.

Upvotes: 0

Ferdinand Beyer
Ferdinand Beyer

Reputation: 67137

As the error message indicates, you cannot call PyQt signals. Instead, you have to use the emit() method:

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

Upvotes: 5

Related Questions