加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 23:39:23 所属栏目:Python 来源:网络整理
导读:我正在使用Tkinter构建基本UI,我注意到没有启用cmd a(或Select all命令). 如何启用tkinter中的所有快捷方式,尤其是输入文本字段. 这是我的代码: entry1 = ttk.Entry(root,width = 60)entry1.pack() 解决方法 @Goyo已经回答了你的问题.我想分享我的贡献,因为
我正在使用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()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读