Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- from time import sleep
- from PyQt4.QtCore import *
- from PyQt4.QtGui import *
- mainLoopCount = 10
- innerLoopCount = 1000
- durationInnerLoop = 4.0 # seconds (float!)
- class dialog(QDialog):
- progress = 0
- def __init__(self):
- QDialog.__init__(self)
- layout = QGridLayout(self)
- self.progressBar = QProgressBar(self)
- layout.addWidget(self.progressBar,0,0)
- button = QPushButton("start")
- button.clicked.connect(self.start)
- layout.addWidget(button,0,1)
- self.progressBar.setMinimum(0)
- self.progressBar.setMaximum(mainLoopCount)
- def start(self):
- for i in range(0,10):
- QCoreApplication.processEvents()
- self.progress = i
- self.setProgress()
- worker = Worker()
- worker.progress.connect(self.setProgress)
- worker.work()
- def setProgress(self,value=0):
- p = self.progress + float(value) / innerLoopCount
- print p
- self.progressBar.setValue(p)
- class Worker(QObject):
- progress = pyqtSignal(int)
- def __init__(self):
- QObject.__init__(self)
- def work(self):
- for i in range(0,1000):
- QCoreApplication.processEvents()
- sleep(durationInnerLoop/innerLoopCount)
- self.progress.emit(i)
- if __name__ == "__main__":
- app = QApplication(sys.argv)
- main_window = dialog()
- main_window.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement