Tengo una variable que almacena el texto que el usuario escribe en un cuadro de diálogo. Necesito copiar este texto y luego pegarlo en otro campo (para hacer una búsqueda)

Intenté pyperclip pero funciona solo con texto plano, no con variables. Aquí está el código solo para el cuadro de diálogo y e es mi variable.

from tkinter import *
master = Tk()
e = Entry(master)
e.pack()

e.focus_set()


def callback():
    print(e.get())  # This is the text I want to use later


b = Button(master, text="insert", width=10, command=callback)
b.pack()


mainloop()
1
jitlp 18 feb. 2020 a las 14:21

2 respuestas

La mejor respuesta

Necesita crear una cadena tkinter para almacenar este valor, lo he incluido en su código a continuación.

from tkinter import *
master = Tk()

estring = StringVar(master)

e = Entry(master, textvariable = estring,)
e.pack()

e.focus_set()




def callback():
    print(estring.get())  # This is the text I want to use later


b = Button(master,  text="insert", width=10, command=callback)
b.pack()


mainloop()

A continuación se muestra el ejemplo usando pyperclip, para copiar el texto de entrada al portapapeles.

from tkinter import *
import pyperclip

master = Tk()

estring = StringVar(master)

e = Entry(master, textvariable = estring,)
e.pack()

e.focus_set()


def callback():
    pyperclip.copy(estring.get())

b = Button(master,  text="copy", width=10, command=callback)
b.pack()


mainloop()

Una vez que se ingresa el texto y se presiona el botón copiar, el texto ahora está en el portapapeles.

1
CodeCupboard 19 feb. 2020 a las 08:27

¿Esto no funciona en tu contexto?

import pyperclip

test = "Hugo"
pyperclip.copy(test)
print(pyperclip.paste())
0
Xenobiologist 18 feb. 2020 a las 12:19