bucle e interfaz bloqueada

Alejandro Moreno López al3xmor3no en gmail.com
Sab Abr 23 19:39:18 CEST 2005


Hola a todos,

sigo con mi pyDesktop. Ahora mismo me encuentro con un problema
curioso. Resulta que la aplicación tiene que hacer un barrido de todo
el disco duro con un bucle parecido a este:

       for file in files:
            actual = dir + "/" + file + '\n'
            fileHandle.write ( dir + "/" + file + '\n')
            self.on_Searching(actual)
            #time.sleep(0.001)


    def on_Searching(self, dir):
        #self.components.StaticText1.SetLabel( dir )
        self.statusBar.text = dir

el caso es que la aplicación se me queda medio colgada. Sigue haciendo
cambios en la barra de estado, pero no puedo tocar la ventana,
moverla, tocar algún botón, etc. La idea es que esto se siga haciendo
en segundo plano, pero que deje trabajar al usuario. Ahora mismo sale
el icono de tiempo y ahí se queda. Como veis he probado a meterle un
sleep sin éxito.

Se me ocurre ahora mismo lanzar un thread... pero no se si funcionará,
voy a probar (mi primera incursión en threads con python :-)). A
alguien se le ocurre alguna mejor idea? Si quereis el código fuente os
lo puedo pasar. La interfaz está en wxWidgets por si le sirve a
alguien...

un saludo.




Más información sobre la lista de distribución Python-es