Python новый стиль сигналов и слот между потоком и графическим приложением

Я новичок в ООП и Python. Я пытаюсь передать сигнал из Qthread в главное окно Qt GUI, используя сигналы и слоты нового стиля.

Это нить. Внутри я подам сигналы для обновления диалогового окна сообщения в GUI после нажатия кнопки RUN в GUI и через 3 секунды после этого. Я не уверен, что наследование определено нормально или сигнал определен правильно.

class OptimThread (QtCore.QThread):

    signalUpdateMessageDialog = QtCore.SIGNAL("updateMessageDialog(PyQt_PyObject,QString)")

    def __init__(self):
        QtCore.QThread.__init__(self)

    def run(self):

        start = time.time()

        self.emit(self.signalUpdateMessageDialog, time.time() - start, 'Initialising...')     

        time.sleep(3)

        self.emit(self.signalUpdateMessageDialog, time.time() - start, 'You waited 3 seconds...')

Основной класс и часть приложения похожи на это (я пропустил другой, вероятно, не относящийся к делу код).

class Main(QtGui.QMainWindow, Ui_MainWindow):    

    def __init__(self, parent=None):
        super(Main, self).__init__(parent)

    def updateMessageDialog(self, times, dialog):  

        hours = str(datetime.timedelta(seconds=int(times)))

        self.MessageDialog.insertHtml('<tt>' + hours + ':</tt> ' + dialog + '<br>')

        return
    def clickRun(self):


        self.optimThread = OptimThread()

        self.connect(self.optimThread, QtCore.SIGNAL("updateMessageDialog(PyQt_PyObject,QString)"), self.updateMessageDialog)

        #self.optimThread.signalUpdateMessageDialog.connect(self.updateMessageDialog)

        self.optimThread.start()

if __name__ == '__main__':
    app=QtGui.QApplication(sys.argv)
    window=Main(None)
    app.setActiveWindow(window)
    window.show()
    sys.exit(app.exec_()) # Exit from Python

Если что-нибудь написано так, это работает. Тем не менее, если я хочу использовать новый стиль для подключения в Main:

self.optimThread.signalUpdateMessageDialog.connect(self.updateMessageDialog)

Это говорит:

self.optimThread.signalUpdateMessageDialog.connect (self.updateMessageDialog) AttributeError: у объекта 'str' нет атрибута 'connect'

Я ценю ваши советы (связанные с темой и стилем) и прошу прощения за то, что не сделал MWE.

Ответы на вопрос(1)

Ваш ответ на вопрос