Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Yidu en 1 Abril 2018, 20:17 pm



Título: Usar el portapapeles con tkinter [PYTHON]
Publicado por: Yidu en 1 Abril 2018, 20:17 pm
Hola de nuevo!

Pues esa es la duda que tengo. No se si hay algún método en tkinter para poder importar/exportar el contenido del portapapeles. Aunque lo que mas me interesa es poder copiar el contenido a un widget Entry. Osea, lo que escribamos en el bloc de notas, por ejemplo, poder pegarlo en la caja del widget Entry.

He visto por alguna web que usan el método:

Código
  1. ventana = Tk()
  2. ventana.withdraw()

Y luego hacen una llamada como:

Código
  1. ventana.clipboard_get()

En todo caso, me gustaría saber, como se enlaza todo esto con Entry o cual es la forma correcta de hacerlo.

Un saludo!

EDITO:

He probado algún código y lo que mas se asemeja lo pongo en el siguiente script. Pero para que funcione primero hemos de copiar el texto y luego abrir nuestro programa con tkinter. Y claro, queda un poco chusquero. Me gustaría que sin cerrar nuestra aplicación se pudiera hacer copy/paste en tiempo real.

Código
  1. from tkinter import Tk, Entry, StringVar
  2.  
  3. raiz = Tk()
  4. copiado = raiz.clipboard_get()
  5.  
  6. varEntry = StringVar()
  7. e1 = Entry(raiz, textvariable = varEntry)
  8. e1.place(x = 0, y = 0)
  9. varEntry.set(copiado)
  10.  
  11. raiz.mainloop()
  12.  

Bueno, creo que esto es mas o menos lo que queria conseguir. He añadido un Button para ir actualizando lo que se copia en el portapapeles. No se si es la forma correcta de hacerlo. Por si alguien le interesa, pongo mi script:

Código
  1. from tkinter import Tk, Entry, StringVar, Button
  2.  
  3. raiz = Tk()
  4.  
  5. def pegar():
  6.    pegado = raiz.clipboard_get()
  7.    varEntry.set(pegado)
  8.  
  9.  
  10.  
  11. b1 = Button(raiz, text = 'Pegar', command = pegar)
  12. b1.place(x = 0, y = 50)
  13.  
  14. varEntry = StringVar()
  15. e1 = Entry(raiz, textvariable = varEntry)
  16. e1.place(x = 0, y = 0)
  17.  
  18.  
  19. raiz.mainloop()
  20.  
  21.  


Título: Re: Usar el portapapeles con tkinter [PYTHON]
Publicado por: PUAROT en 1 Abril 2018, 21:17 pm
A mi me hizo falta para un proyecto que hice y lo resolví con clipboard_append(text) que es un método de la clase widget
Espero que sea lo que buscas