Bueno, tengo un formulario con una lista, cuando se va selecionando los distintos items, se corre la funcion x esta llama a otra funcion load_Fotos que esta llama a download. Esta ultima baja unos archivos de la web, lo cual tarda, por eso hasta que no termina no devuelve el control del programa.
Tendria que crear un thread verdad? para correr la funcion download, cual seria la manera correcta. estas son las funciones.
Código:
def x(self):
self.Foto.Load_Fotos(art.Foto)
Código:
def Load_Fotos(self,fotos):
paneles = [self.Foto,self.Foto1,self.Foto2,self.Foto3]
for p in paneles:
p.pic = self.il.NOPIC
bi = wx.BusyInfo("Cargando imagenes, espere por favor...")
for i,f in enumerate(fotos):
dir = md.Func.download(f)
if dir != False:
if i == 0:
self.Load_Foto(self.Foto1, dir)
if i == 1:
self.Load_Foto(self.Foto2, dir)
if i == 2:
self.Load_Foto(self.Foto3, dir)
self.Foto.pic = self.Foto1.pic
self.Refresh()
bi.Destroy()
Código:
def download(url):
import urllib
try:
image = urllib.URLopener()
name = url.split('/')[-1]
dir = c.TmpPath + name
image.retrieve(url,dir)
return dir
except:
return False
osea en vez de tener el wx.busyinfo me gustaria tener el control del programa.
Saludos y muchas gracias