多线程+QProgressBar实现进度条:
1 import threading
2
3 from PyQt5.Qt import * #刚开始学习可以这样一下导入
4 import sys,time
5
6 rate = 0
7 class MyProcessBar(QProgressBar):
8 def __init__(self):
9 super().__init__()
10 self.setWindowTitle("test的学习")
11 self.resize(300,30)
12 self.set_ui()
13
14 def set_ui(self):
15 timer = QTimer(self)
16 timer.start(100)
17 timer.timeout.connect(self.timer_timeout_slot)
18
19 def timer_timeout_slot(self):
20 self.setValue(rate+1)
21
22 def create_ui_show():
23 app =QApplication(sys.argv)
24 processBar = MyProcessBar()
25 processBar.show()
26 sys.exit(app.exec_())
27
28 if __name__ == '__main__':
29 thread1 = threading.Thread(target=create_ui_show)
30 thread1.start()
31
32 for i in range(100):
33 time.sleep(0.05)
34 rate = i
35 if i == 99:
36 print("下载完成")
多进程+QProgressBar实现进度条:
1 import multiprocessing
2
3 from PyQt5.Qt import * #刚开始学习可以这样一下导入
4 import sys,time
5
6 def create_ui_show(rate):
7 app = QApplication(sys.argv)
8 progressBar = QProgressBar()
9
10 timer = QTimer()
11 def test():
12 progressBar.setValue(rate.value+1)
13 if rate.value == 99:
14 sys.exit(0)
15 timer.timeout.connect(test)
16 timer.start(100)
17
18 progressBar.show()
19 sys.exit(app.exec_())
20
21 if __name__ == '__main__':
22 rate = multiprocessing.Value("d",0) #初始的rate.value = 0
23
24 process1 = multiprocessing.Process(target=create_ui_show,args=(rate,))
25 process1.start()
26
27 for i in range(100):
28 time.sleep(0.1)
29 rate.value = i