除非我触摸底部栏上的图标(如果已隐藏),否则一切正常。
在使用 urllib2
进行下载的过程中发生self.appendText(self.stateText, self.actualState, True)
u = urllib2.urlopen(f['url'])
meta = u.info()
file_size = int(meta.getheaders("Content-Length")[0])
newFileName = self.selectedDir + f['name'].encode('ascii') + " - " + f['date'].encode('ascii') + ".mp3"
fil = open(newFileName, "wb")
aclen = 0
while True:
b = u.read(8192)
if not b:
break
fil.write(b)
aclen = aclen + 8192
self.statusbar.SetStatusText(str(aclen / 1024) + "/" + str(file_size / 1024) + " - " + str(self.percentage(aclen,file_size)) + "%")
fil.close()
我不明白可能发生的事情,但也许事件有错误?崩溃只发生在这部分代码中。似乎没有“处理”此事件的可能性。
应用程序的屏幕截图:
答案 0 :(得分:1)
你问“可能发生了什么?”。似乎正在发生的事情是你的wx应用程序陷入循环或睡眠状态,因此没有呈现任何内容,并且似乎没有响应。
知道为什么你认为它卡在你发布的代码中会很有趣。知道它是如何工作的也很有趣......在while循环期间似乎没有任何意义,你可以通过wx来渲染更新。因此,我不清楚如何呈现状态更新。
我只想说:如果你的代码挂在read(8192)上,或者在无限循环中,它会使它看起来像你的截图:没有响应。
为了避免反应迟钝,你需要在花费很长时间做某事时屈服于wx。
一种简单的调试方法是使用打印来检测代码,以确定它被卡住的位置。至少,在urlopen / u.info活动之前和之后放置一个打印,并在while循环中放置至少一个。