Actualización del elemento de la GUI de Python desde Qthread

Así que sé que hay muchas publicaciones sobre la actualización de elementos en una GUI con Qthread. Hice todo lo posible para repasar estos, pero todavía tengo una pregunta.

Estoy tratando de crear una GUI que ejecute un método cuando se hace clic en un botón y ese método comienza un nuevo hilo. Entonces ese hilo emite una señal a la GUI para cambiar el valor del elemento GUI:

from PySide import QtCore, QtGui
import time

class WorkerThread(QtCore.QThread):
    updateProgress = QtCore.Signal(int)
    def __init__(self, countto):
        QtCore.QThread.__init__(self)
        self.countto = countto

    def run(self):
        i = 0
        while i <= self.countto:
            print(self.countto)
            self.updateProgress.emit(i)
            time.sleep(1)
            i += 1


class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.progressBar = QtGui.QProgressBar(Dialog)
        self.progressBar.setGeometry(QtCore.QRect(110, 120, 118, 23))
        self.progressBar.setProperty("value", 0)
        self.progressBar.setObjectName("progressBar")
        self.lineEdit = QtGui.QLineEdit(Dialog)
        self.lineEdit.setGeometry(QtCore.QRect(50, 60, 113, 20))
        self.lineEdit.setObjectName("lineEdit")
        self.pushButton = QtGui.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(190, 60, 75, 23))
        self.pushButton.setObjectName("pushButton")

        self.wt = WorkerThread(int)
        self.wt.updateProgress.connect(self.setProgress)

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton.setText(QtGui.QApplication.translate("Dialog", "PushButton", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton.connect(QtCore.SIGNAL('clicked()'), self.get_time)

    def setProgress(self, progress):
        self.progressBar.setValue(progress)

    def get_time(self):
        countto = self.lineEdit.text()
        countto = int(countto)
        print(countto)
        self.wt = WorkerThread(countto)
        self.wt.start()
        q = 0
        while q < 5:
            print(countto+2)
            time.sleep(2)
            q += 1


if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    Dialog = QtGui.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    Dialog.show()
    sys.exit(app.exec_())

Se supone que esta GUI ejecuta el hilo principal y realiza un recuento arbitrario para asegurarse de que funciona. Luego, el segundo subproceso también realiza un recuento arbitrario para asegurarse de que funciona y luego intenta emitir una señal a la GUI para actualizar elprogressbar elemento. Sé que ambos subprocesos se están ejecutando, pero creo que tengo problemas para recibir la señal porque elprogressbar no se actualiza He intentado algunas cosas, pero ahora estoy atascado. Creo que el problema surge cuando intento pasar un valor al hilo y cuando trato de crear una instancia del hilo en el método 'setupUi', solo para redefinirlo más adelante.

¿Alguien podría ayudar y explicar mi error al pensar? Estoy tratando de entenderlo usando señales y ranuras con subprocesos, por lo que una explicación sería genial.

Respuestas a la pregunta(1)

Su respuesta a la pregunta