以下代碼計算了一堆PyQt4進度條的最高99%,我想爲我的GUI 不要凍結,因爲它們的計數高達99%。如果可能的話,我很樂意做到這一點沒有自定義類或功能。 我知道使用類很好,但對於這個小代碼段我不想創建一個類。 從我讀過的有可能是可以完成這個update()函數...請告知,如果我在正確的軌道上Python PyQt4 progressbar凍結GUI
import sys
import time
from PyQt4 import QtGui
from PyQt4 import QtCore
app = QtGui.QApplication(sys.argv)
widget = QtGui.QWidget()
widget.resize(400, 200)
widget.setWindowTitle('simple')
widget.show()
shift = 0
cntControl = 5
barra = [0] * cntControl
for i in range(cntControl):
shift = shift + 10
barra[i] = QtGui.QProgressBar(widget)
barra[i].show()
barra[i].setMinimum(0)
barra[i].setMaximum(10000)
barra[i].setGeometry(QtCore.QRect(10, shift, 200, 10))
for a in range(10000):
for i in range(cntControl):
barra[i].setValue(a)
sys.exit(app.exec_())
嗨,謝謝你的回覆。我的問題實際上是要求......爲什麼我的主窗口在進度條移動時凍結...一旦所有進度條完成,它只會解凍 – Rhys 2011-04-21 19:53:15
我一直試圖在單個線程中運行每個進度條,並且出現以下錯誤:.... QObject :: installEventFilter():無法過濾不同線程中的對象的事件。 ....和... QObject :: startTimer:定時器不能從另一個線程啓動...我將研究Qthreads – Rhys 2011-04-22 10:04:52
@Rhys:很難知道在沒有實際代碼的情況下,線程會發生什麼情況,但答案你最初的問題是:使用線程。你應該發佈你的新代碼和異常追溯,但這將是另一個問題。 – joaquin 2011-04-22 10:14:33