在 Python 中为正在进行的请求制作进度条

Make a progress bar for an ongoing request in Python

我的应用程序经常请求某个网页获取一些 json 文件。我通过请求库执行此操作并且一切正常。

问题是最好有一个指示器(理想情况下是进度条)来显示在请求和加载数据之前需要多长时间。

有什么办法可以实现吗?

P.S.: 我正在使用 PyQt4 框架开发我的应用程序(以及进度条)。

  1. 选择一些随机数(即30秒)
  2. 获取当前时间戳(start_time)
  3. 下载任何内容并显示上面数字的计时器
  4. 获取当前时间戳(end_time)
  5. 下次下载时不要使用上面的随机数,而是使用实际下载的 start/stop 次...

如果加载时间相当短(即几秒钟),最简单的做法是显示 busy/wait cursor:

QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor)
# retrieve network resource ...
QtGui.QApplication.restoreOverrideCursor()

或将其设置在某个特定的小部件上:

somewidget.setCursor(QtCore.Qt.BusyCursor)
# retrieve network resource ...
somewidget.unsetCursor()