Я действительно не мог заставить потоки работать вообще ... Я мог бы опубликовать свою попытку потока, которая выглядит безупречной для моих (уже уставших) глаз ...
Я, однако, смог настроить * 1003Пример с индикатором хода выполнения *http://zetcode.com/tutorials/pyqt4/widgets/ и со следующим кодом ... который решает проблему зависания в графическом интерфейсе:
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.setWindowTitle('ProgressBar')
self.setGeometry(300, 300, 250, 150)
self.pbar = [0] * 3
self.timer = [0] * 3
self.step = [0] * 3
self.shift = 0
for i in range(3):
self.shift = self.shift + 30
self.pbar[i] = QtGui.QProgressBar(self)
self.pbar[i].setGeometry(30, self.shift, 200, 25)
self.timer[i] = QtCore.QBasicTimer()
self.step[i] = 0
self.timer[i].start(100, self)
def timerEvent(self, event):
for i in range(3):
if self.step[i] >= 100:
self.timer[i].stop()
return
self.step[i] = self.step[i] + 1
self.pbar[i].setValue(self.step[i])
app = QtGui.QApplication(sys.argv) ex
= Example() ex.show() app.exec_()
У меня нет ИДЕИ, почему он работает, что, вероятно, не оченьвещь.Я предполагаю, что это может иметь какое-то отношение к super(Example, self).__init__()
и к пользовательскому таймеру, который использует pyqt4.Я действительно надеялся сделать это без функций или классов, но не уверен, что это возможно.Если вы думаете, что это так, не стесняйтесь писать!