Копирование текста из виджета Label в буфер обмена

from tkinter import *
root = Tk()

lbl = Label(root, text='hello world')
btn = Button(root, text='copy')

lbl.grid(row=0, column=0)
btn.grid(row=1, column=0)

root.mainloop()

Мне нужно дополнить программу функцией копирования. Видел копирование из виджета Scrolledtext, но с Label так не выходит. Как копировать текст из Label в буфер обмена?


Ответы (1 шт):

Автор решения: insolor

Нужно получить текст из виджета (в данном случае через lbl['text'], если нужно например из Entry - то с помощью метода entry.get()), потом добавить его в буфер обмена с помощью метода root.clipboard_append:

from tkinter import *
root = Tk()

lbl = Label(root, text='hello world')


def copy_to_clipboard():
    root.clipboard_clear()  # Очистить буфер обмена
    root.clipboard_append(lbl['text'])  # Добавить текст в буфер обмена


btn = Button(root, text='copy', command=copy_to_clipboard)

lbl.grid(row=0, column=0)
btn.grid(row=1, column=0)

root.mainloop()
→ Ссылка