【发布时间】:2019-11-25 08:26:33
【问题描述】:
基本上,我在 QStackedWidget 中有 4 个小部件,它们是:
- HomeWidget
- 进程小部件
- 确认小部件
- 加载小部件
在 ProcessWidget 和 LoadingWidget 中,我将使用 QNetworkAccessManager 与我的 API 进行通信。
我的申请流程:
从 HomeWidget 开始。
然后,切换到 ProcessWidget。
然后,切换到 ConfirmWidget。
然后,切换到 LoadingWidget。
然后,切换回 HomeWidget 等等。
在 ProcessWidget 中,我只提出 1 个请求。但在 LoadingWidget 我有 4 个请求。
这是我为每个请求进行通信的方式(每个请求的区别仅在于 URL):
def doRequest(self):
url = "http://127.0.0.1:8000/api"
req = QtNetwork.QNetworkRequest(QUrl(url))
self.networkAccessManager = QtNetwork.QNetworkAccessManager()
self.networkAccessManager.finished.connect(self.handleResponse)
self.networkAccessManager.get(req)
def handleResponse(self, reply):
er = reply.error()
if er == QtNetwork.QNetworkReply.NoError:
bytes_string = reply.readAll()
data = json.loads(str(bytes_string, 'utf-8'))
# Do something
else:
errorMessage = "Error occured: "+ str(er) + "\n"+ str(reply.errorString())
# Do something
问题是,在我的应用程序流程的第 4 次迭代中,我的应用程序突然崩溃了。它给出了这个错误:
Process Finished With Exit Code 139 (Interrupted by signal 11: SIGSEGV)
错在哪里?
【问题讨论】: