Я бы хотел, чтобы пользователь мог скопировать в буфер обмена текст из текстового виджета в tkinter, просто используя левую кнопку мыши. Как в случае: пользователь щелкает текст левой кнопкой мыши, весь текст в текстовом виджете выделяется (с синими линиями в окнах) и автоматически копируется в буфер обмена.
я пробовал оба метода frame.bind и clipboard_append, но он оказался неудачным
Я пробовал 2 варианта:
Вариант 1 с буфером обмена, этот работает, но в фоновом режиме (текст копируется при нажатии кнопки, а не когда пользователь нажимает на текст, также текст не выделяется синими линиями, как в окнах, поэтому пользователь не знает, что текст был скопирован, он просто копирует текст в фоновом режиме без ведома пользователя):
field_value = self.txt.get("1.0", 'end-1c') # get field value from event, but remove line return at end
txt_frm.clipboard_clear() # clear clipboard contents
txt_frm.clipboard_append(field_value) # append new value to clipbaord
Вариант 2 с методом привязки к кнопке, этот не работает вообще:
def copy_text_to_clipboard(event):
field_value = event.widget.get("1.0", 'end-1c')
window.clipboard_clear() # clear clipboard contents
window.clipboard_append(field_value) # append new value to clipbaord
text_field.bind("<Button-1>", copy_text_to_clipboard)