tkinter копирование содержимого scrolledtext
Как скопировать в буфер обмена введённый текст в scrolledtext ?
from tkinter import *
from tkinter import scrolledtext
root = Tk()
root.geometry('400x200+600+300')
def copy():
txt.clipboard_append(txt)
btn = Button(root, text='скопировать', command=copy)
btn.place(x=15, y=15)
txt = scrolledtext.ScrolledText(root, width=33, height=11)
txt.place(x=100, y=10)
root.mainloop()
сейчас по клику в буфер копируется >>> !frame
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
txt - это сам объект ScrolledText. При копировании в буфер обмена у вас попадает str(txt), но это не текстовое содержимое виджета, имя класса tcl. Чтобы получить из виджета текст, нужно вызвать метод get (аналогично объекту Text - см. например Tkinter Text):
def copy():
txt.clipboard_clear() # Очистить буфер обмена
txt.clipboard_append(txt.get(1.0, END)) # Скопировать текст в буфер обмена