Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: AlbertSerres en 22 Octubre 2013, 16:30 pm



Título: Ayuda con python tkinter
Publicado por: AlbertSerres en 22 Octubre 2013, 16:30 pm
Hola, buenas tardes.

Estoy haciendo una interfaz grafica y me piden que cree un boton el cual me permita elegir un directorio de trabajo.

En cuyo directorio de trabajo debe leerme todos los archivos .jpg e introducirlos en una listbox.

Como deberia hacerlo? Es que llevo semanas leyendo en guias y no he sacado nada claro..

Gracias por todo.


Título: Re: Ayuda con python tkinter
Publicado por: Danyfirex en 22 Octubre 2013, 21:32 pm
Yo pensé en algo así  :rolleyes:


Código
  1. from Tkinter import *
  2. import tkFileDialog
  3. import os
  4. v0=Tk()
  5.  
  6. list1=Listbox(v0)
  7. list1.pack()
  8. mivalor=StringVar()
  9.  
  10. def listar():
  11.    dirname = tkFileDialog.askdirectory(parent=v0,initialdir="/",title='Selecciona una Carpeta')
  12.    if len(dirname ) > 0:
  13.        print "Directorio= %s" % dirname
  14.        os.chdir(dirname)
  15.        for files in os.listdir("."):
  16.         if files.endswith(".jpg"):
  17.          print files
  18.          list1.insert(END,files)
  19.  
  20.  
  21. b1=Button(v0,text="Insertar en Listbox",command=listar).pack()
  22.  
  23. v0.mainloop()
  24.  



Saludos


Título: Re: Ayuda con python tkinter
Publicado por: AlbertSerres en 23 Octubre 2013, 00:00 am
Muchisimas gracias, me ha sido de gran ayuda.

Aparte de esto, como seria un boton para seleccionar toda el contenido de dentro de la  listbox y otro boton para desmarcar todo lo que tengo marcado de la listbox?

Despues tambien necesitaria un boton para quitar de la listbox todo lo que tengo marcado y otro boton para quitar de la listbox todo lo que tengo desmarcado.

lo de quitar lo que tengo marcado tengo algo asi, pero no me funciona ya que el comando delete no sirve para esto...

Código
  1. def ocultar_seleccionados():
  2. seleccion = llista.curselection()
  3. if llista.curselection() != ():
  4. seleccion=delete()

Podriais ayudarme otra vez porfavor? Me salvariais la vida.

Gracias.



[MOD]: Usa las etiquetas para insertar código.


Título: Re: Ayuda con python tkinter
Publicado por: Danyfirex en 23 Octubre 2013, 22:11 pm
Con este ejemplo ya esta casi terminado lo que quieres. la próxima ayuda sera menor literal. porque tampoco me voy a poner a hacer todo por usted.



Código
  1. from Tkinter import *
  2. import tkFileDialog
  3. import os
  4. v0=Tk()
  5.  
  6. list1=Listbox(v0,selectmode=EXTENDED)
  7. list1.pack()
  8. mivalor=StringVar()
  9.  
  10. def listar():
  11.    dirname = tkFileDialog.askdirectory(parent=v0,initialdir="/",title='Selecciona una Carpeta')
  12.    if len(dirname ) > 0:
  13.        print "Directorio= %s" % dirname
  14.        os.chdir(dirname)
  15.        for files in os.listdir("."):
  16.         if files.endswith(".jpg"):
  17.          print files
  18.          list1.insert(END,files)
  19.  
  20. def Borrar():
  21.        items = list1.curselection()
  22.        pos = 0
  23.        for i in items :
  24.            idx = int(i) - pos
  25.            list1.delete( idx,idx )
  26.            pos = pos + 1
  27.  
  28.  
  29. b1=Button(v0,text="Insertar en Listbox",command=listar).pack()
  30. b2=Button(v0,text="Insertar en Listbox2",command=Borrar).pack()
  31. v0.mainloop()


Ponte a estudiar.

saludos