обновление QProgressBar с использованием многопоточности или многопоточности - PullRequest
0 голосов
/ 23 января 2012
import sys, time
import multiprocessing, threading
from PyQt4.QtGui import QApplication, QProgressBar
from PyQt4.QtCore import pyqtSignal

class Bar(QProgressBar):
    mysignal = pyqtSignal(int)

    def __init__(self, parent=None):
        super(Bar, self).__init__()
        self.mysignal.connect(self.set_value)

        #threading.Thread(target=self.thread_func).start()
        #multiprocessing.Process(target=self.thread_func).start()

    def set_value(self, x):
        self.setValue(x)

    def thread_func(self):
        for i in range(101):
            self.mysignal.emit(i)
            time.sleep(1)

app = QApplication(sys.argv)
bar = Bar()
bar.show()
app.exec_()

Я должен уточнить, что почти не знаю как многопоточности, так и многопроцессорности.

В приведенном выше примере я пытаюсь обновить значения индикатора выполнения из второго потока или процесса.(Хорошо, моя цель не просто обновить значения, но это пример).Использование потокового модуля работает правильно.С другой стороны, с многопроцессорным модулем у меня нет ожидаемого результата.

Почему это происходит и что я должен сделать, чтобы это исправить?

Заранее спасибо.

...