PyQt4: отправка пользовательского сигнала из потока в диалог прогресса - PullRequest
1 голос
/ 13 июля 2010

Я не могу отправить сигнал об обновлении диалогового окна прогресса из QThread.Я настроил что-то вроде этого (из класса MainWindow):

self.progressDialog = QtGui.QProgressDialog("Packing ...", QtCore.QString(), 0,100, self.parent_)
self.thread = QtCore.QThread(parent = self.parent_)
self.thread.run = myRun
self.thread.start()
self.thread.QtCore.connect(self.thread, QtCore.SIGNAL("updateProgress"), self.progressDialog, QtCore.SLOT("setProgress(int progress, int totalSteps)"))

, затем из функции myRun я пытаюсь испустить сигнал:Диалог прогресса просто не обновляется: (.

Что я делаю не так?

Спасибо! Натан

1 Ответ

1 голос
/ 21 марта 2011

Я бы сделал что-то так:

self.connect(self.thread, QtCore.SIGNAL("progressUpdated"), self.updateProgress)

, а затем метод (слот) в главном окне:

  def updateProgress(self, progress):
    self.ui.progressBar.setValue(progress) 
    self.ui.progressBar.repaint()

self или self.ui зависит, если вы подклассифицировали основное окно, а затем запустили setupUi

self.thread.emit(QtCore.SIGNAL("updateProgress"),progress)

мне кажется правильным

...