2016-03-08 45 views
-2

我的應用程序經常要求某個網頁獲取一些json文件。我通過請求庫執行此操作,並且一切正常。在Python中爲進行中的請求創建進度條

問題是,如果有一個指示器(理想狀態下的進度條),它會顯示需要多長時間才能加載數據,直到請求加載數據&。

有什麼辦法可以達到這個目的嗎?

P.S .:我使用PyQt4框架來開發我的應用程序(因此,進度條)。

回答

3

如果加載時間是公平的很短(即只需幾秒鐘),以最簡單的做法應該是展示一個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() 
+0

事實上,這似乎是最簡單,最優雅的解決方案,不知道我怎麼沒」長得多我想那個>。>。 – emihir0

0
  1. 挑選一些隨機數(即30秒)的
  2. 得到當前時間戳(START_TIME)
  3. 下載什麼,並顯示該號碼的定時器上述
  4. 得到當前時間戳(END_TIME)
  5. 下次您下載的時候,而不是使用上面的隨機數使用從實際下載的開始/停止時間...
+0

其實我在想這樣做這樣的事情(更比如跟蹤最近5次下載速度並對它們進行平均)。問題是......這並不準確。有時請求需要大約2秒才能完成,其他時間則需要0.5秒。 – emihir0

+0

是這是一個問題......但在我的經驗,這是你可以努力VS獎勵 –

+0

到底做的最好的,這只是一個小衆的設計,讓用戶知道「嘿,我做的事情,等着我完成「。你能告訴我一些關於如何讓用戶知道等待的常用方式(比進度條)嗎?目前我點擊按鈕,在所有內容都被請求和處理之前,沒有任何變化。但是,因爲速度非常快(通常最多2-3秒),所以我不想用不必要的彈出窗口等來混淆GUI。 – emihir0