Pyqt: ‘dinámicamente’ se agrega a qtextedit desde la función

Hay un botón en mi gui pyqt que cuando se hace clic ejecuta una función que hace algunos cálculos matemáticos largos. Dentro de esta función había muchas declaraciones impresas como:

print "finished calculating task1 going on to task2" 

Entonces, al usar declaraciones de impresión como las que no necesito, digamos una barra de progreso, por ejemplo, para indicar el progreso del progtwig. Agregué un widget QTextEdit en mi gui y reemplacé todas las declaraciones de impresión en esa función con:

MyTextEdit.append('message')

donde MyTextEdit es un widget QTextEdit y el message es el mensaje que me gustaría que la función imprima.

Ejemplo:

 MyTextEdit.append('finished calculating task1 going on to task2') task2 #lengthy second task MyTextEdit.append('finished calculating task2 going on to task3') task3 #lengthy third task 

Cuando hago clic en el botón y la función se ejecuta, todos los cálculos dentro de esa función tienen que finalizar y luego todos los mensajes se agregan al widget QTextEdit.

Pensé que cada vez que se MyTextEdit.append('message') un MyTextEdit.append('message') se ejecutaría de inmediato y el widget mostraría el mensaje en ese instante y no al final junto con todos los demás mensajes.

¿Qué estoy haciendo mal?

Tuve la idea de hacer esto leyendo este post

Simplemente realice una llamada a QCoreApplication.processEvents después de cada anexo

Puede obtener su instancia de QCoreApplication con el método estático QCoreApplication.instance

Esto le pedirá a Qt que “actualice” su gui antes de terminar las tareas que se están ejecutando, ya que el comando procesa todos los eventos pendientes.