No tengo tiempo para instalar
Qt pero así por encima veo que defines una clase que hereda de un objeto
QThread que por el nombre alude a un "hilo", un proceso que funciona en segundo plano.
https://www.riverbankcomputing.com/static/Docs/PyQt4/qthread.htmlViendo la documentación observo que
QThread dispone de un método donde corre el hilo, el
run. En teoría tal como indica la doc este me´todo indica que todo lo que metas ahí lo ejecuta en segundo plano. Por lo tanto necesitas incluir en esa clase que defines el método
run que lo heredará de
QThread.
Luego en el
run debes poner un bucle condicional que termine cuando de alguna forma, tú sabrás, el fichero haya llegado al total o fuese descargado y entonces el bucle finalizaría. Dentro de ese mismo bucle es donde tendrías que actualizar la barra de progreso.
Una vez tengas todo eso, ya simplemente cuando instancies la clase
DownloadAudio deberías invocar el método
start. Y así debería funcionar, pero me imagino que deberías pasar la referencia de la barra de progreso.
Otra alternativa a ese diseño pienso que sería que ya que esa función
mycb que defines te devuelve el tamaño, sería conveniente que el hilo lo ejecutara el componente de barra de progreso, y este mientras se ejecuta en segundo plano se vaya actualizando en cada vuelta del bucle en el
run, consultando periódicamente esa función,
mycb,y claro, que también tendrías que pasarle la referencia del
DownloadAudio instanciado.