def __init__(self, title, parent=None): super(ProgressPage, self).__init__(parent) self.setTitle(title) self.parent = parent self.label = QtGui.QLabel("Extracting references...") # Set progress bar self.max = 30 self.progressBar = QtGui.QProgressBar(self) self.progressBar.setFormat('%v/%m') self.progressBar.setMaximum(self.max) self.progressBar.setProperty("value", 30) self.progressBar.setObjectName("progressBar") # Show logs self.logsLabel = QtGui.QLabel(self) self.logsLabel.setText('Status:') self.guihandler = GUIHandler() self.logs = LogsTextEdit(self) self.guihandler.messageLogged.connect(self.logs.updateText) # Register an empty label so next button is disabled self.empty_edit = QtGui.QLineEdit(self) self.empty_edit.setVisible(False) self.registerField('completed*', self.empty_edit) # Add Widgets to layout layout = QtGui.QVBoxLayout() layout.addWidget(self.label) layout.addWidget(self.progressBar) layout.addWidget(self.logsLabel) layout.addWidget(self.logs) self.setLayout(layout)
class ProgressPage(QtGui.QWizardPage): def __init__(self, title, parent=None): super(ProgressPage, self).__init__(parent) self.setTitle(title) self.parent = parent self.label = QtGui.QLabel("Extracting references...") # Set progress bar self.max = 30 self.progressBar = QtGui.QProgressBar(self) self.progressBar.setFormat('%v/%m') self.progressBar.setMaximum(self.max) self.progressBar.setProperty("value", 30) self.progressBar.setObjectName("progressBar") # Show logs self.logsLabel = QtGui.QLabel(self) self.logsLabel.setText('Status:') self.guihandler = GUIHandler() self.logs = LogsTextEdit(self) self.guihandler.messageLogged.connect(self.logs.updateText) # Register an empty label so next button is disabled self.empty_edit = QtGui.QLineEdit(self) self.empty_edit.setVisible(False) self.registerField('completed*', self.empty_edit) # Add Widgets to layout layout = QtGui.QVBoxLayout() layout.addWidget(self.label) layout.addWidget(self.progressBar) layout.addWidget(self.logsLabel) layout.addWidget(self.logs) self.setLayout(layout) def initializePage(self): log.addHandler(self.guihandler) #@UndefinedVariable path = self.field('filePath').toPyObject() self.parent.index_maker.set_path(str(path)) self.logs.setText('') n_files = self.parent.index_maker.get_n_files() self.progressBar.setMaximum(n_files) self.progressBar.setValue(0) # This thread will update the GUI self.thread = ReferenceExtractionThread(self, self.parent.index_maker, n_files) # Connect thread signals self.connect(self.thread, QtCore.SIGNAL("finished()"), self.finish) self.connect(self.thread, QtCore.SIGNAL("terminated()"), self.finish) self.connect(self.thread, QtCore.SIGNAL("output(int)"), self.updateProgressBar) self.thread.start() # Start making the index self.parent.index_maker.make_index() def updateProgressBar(self, value=0): self.progressBar.setValue(value) def finish(self): log.info('Finished extracting. Results can be found in the Manage ' #@UndefinedVariable 'page') # Stop the thread before jumping to next page self.thread.exiting = True log.removeHandler(self.guihandler) #@UndefinedVariable self.empty_edit.setText('Done!')