PyQt4 기반 앱용 API 클라이언트를 작성하려고합니다. - 신호 없음 (processResponse
, processError
) (나는 self.connect(.., SIGNAL(..), ..)
와의 연결을 선언 할 경우에도) 호출되는QNetworkReply segfault가 발생합니다
from PyQt4 import QtCore, QtNetwork
class API(QtCore.QObject):
def processResponse(self, response):
print 'response'
response.deleteLater()
def processError(self, error):
print 'error'
def authenticate(self, authUrl, login, password):
manager = QtNetwork.QNetworkAccessManager()
request = QtNetwork.QNetworkRequest(QtCore.QUrl(authUrl))
reply = manager.get(request)
reply.error.connect(self.processError)
reply.finished.connect(self.processResponse)
return reply
def authenticate2(self, authUrl, login, password):
manager = QtNetwork.QNetworkAccessManager()
request = QtNetwork.QNetworkRequest(QtCore.QUrl(authUrl))
self.reply = manager.get(request)
self.reply.error.connect(self.processError)
self.reply.finished.connect(self.processResponse)
return self.reply
p = API()
z = p.authenticate('http://dev.dentv.ru/edda/v1/token/', 'test', 'test')
print z
print z.isFinished()
첫 번째 문제는 : 그리고, 다음 this documentation 나는이 코드를 썼다. 두 번째 문제는 isFinished
메서드를 호출 할 때 마지막 줄에 segfault가 발생한다는 것입니다. API 메서드 내에서이 메서드를 호출하면 제대로 작동합니다.
제가 생각하기에 그 이유는 reply
개체가 가비지 수집되거나 어떻게 든 삭제된다는 것입니다. 따라서 reply
개체 변수에 바인딩하는 authenticate
메서드의 두 번째 버전을 작성했습니다. segfault도 발생합니다.
내 코드의 문제점은 무엇입니까?