python – cmd a在tkinter条目中不起作用

前端之家收集整理的这篇文章主要介绍了python – cmd a在tkinter条目中不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Tkinter构建基本UI,我注意到没有启用cmd a(或Select all命令).

如何启用tkinter中的所有快捷方式,尤其是输入文本字段.

这是我的代码

entry1 = ttk.Entry(root,width = 60)
entry1.pack()

解决方法

@Goyo已经回答了你的问题.我想分享我的贡献,因为我没有兴趣选择Entry小部件文本的文本而不用它做任何其他事情.因此,我将为您提供一个脏的MCVE,以显示您将如何使用所选文本:a)您要删除它还是b)您将复制它.

对于a),以下功能将完成工作:

def select_text_or_select_and_copy_text(e):
    e.widget.select_range(0,'end')

它将在您将函数名称描述的相应事件绑定到条目小部件的条件下工作:

entry.bind('<Control-a>',select_text_or_select_and_copy_text)
entry.bind('<Control-c>',select_text_or_select_and_copy_text)

对于b),您可以使用此功能

def delete_text(e):
    e.widget.delete('0','end')

并将Delete事件绑定到条目小部件:

entry.bind('<Delete>',delete_text)

我在Ubuntu上尝试过这个MCVE,它可以工作:

import tkinter as tk
import tkinter.ttk as ttk


def select_text_or_select_and_copy_text(e):
    e.widget.select_range(0,'end')     

def delete_text(e):
    e.widget.delete('0','end')


root = tk.Tk()

entry = ttk.Entry(root)
entry.pack()

entry.bind('<Control-a>',select_text_or_select_and_copy_text)
entry.bind('<Delete>',delete_text)

root.mainloop()

猜你在找的Python相关文章