Python Tkinter左键选择整个文本

时间:2019-05-31 05:47:58

标签: python tkinter

我希望用户只需使用鼠标左键就能将tkinter中文本小部件中的文本复制到剪贴板。如下所示:用户使用鼠标左键单击文本,选中了文本小部件中的整个文本(窗口中带有蓝线),并将其自动复制到剪贴板。

我尝试了frame.bind方法和剪贴板_append,但都失败了

我尝试了2种选择:

带剪贴板的选项1,该选项可在背景中使用(在单击按钮时复制文本,而不是在用户单击文本时复制文本,也没有像在Windows中那样用蓝线选择文本,因此用户不知道文本是被复制的,它只是在用户不知道的情况下在后台复制文本):

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)

1 个答案:

答案 0 :(得分:0)

尝试此方法:

def select_all(event=None):
    text_field.select_range(0, END)
    return "break"

text_field.bind('<Button-1>', select_all)