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_()
我应该澄清一点,我几乎不了解线程和多处理。
使用上面的示例,我尝试从第二个线程或进程更新进度条值。 (好吧,我的目的不仅仅是更新值,而是一个例子)。使用线程模块正常工作。另一方面,对于多处理模块,我没有预期的结果。
为什么会发生这种情况,我该怎么做才能解决它?
提前致谢。