Python Tkinter 文本框(Entry)
Python Tkinter 文本框用来让用户输入一行文本字符串。
你如果需要输入多行文本,可以使用 Text 组件。
你如果需要显示一行或多行文本且不允许用户修改,你可以使用 Label 组件。
语法
语法格式如下:
w = Entry( master, option, ... )
master: 按钮的父容器。
options: 可选项,即该按钮的可设置的属性。这些选项可以用键 = 值的形式设置,并以逗号分隔。
序号 | 可选项 & 描述 |
---|---|
1 | bg 输入框背景颜色 |
2 | bd 边框的大小,默认为 2 个像素 |
3 | cursor 光标的形状设定,如arrow, circle, cross, plus 等 |
4 | font 文本字体 |
5 | exportselection 默认情况下,你如果在输入框中选中文本,默认会复制到粘贴板,如果要忽略这个功能刻工艺设置 exportselection=0。 |
6 | fg 文字颜色。值为颜色或为颜色代码,如:'red','#ff0000' |
7 | highlightcolor 文本框高亮边框颜色,当文本框获取焦点时显示 |
8 | justify 显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT, RIGHT, CENTER |
9 | relief 边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。 |
10 | selectbackground 选中文字的背景颜色 |
11 | selectborderwidth 选中文字的背景边框宽度 |
12 | selectforeground 选中文字的颜色 |
13 | show 指定文本框内容显示为字符,值随意,满足字符即可。如密码可以将值设为 show="*" |
14 | state 默认为 state=NORMAL, 文框状态,分为只读和可写,值为:normal/disabled |
15 | textvariable 文本框的值,是一个StringVar()对象 |
16 | width 文本框宽度 |
17 | xscrollcommand 设置水平方向滚动条,一般在用户输入的文本框内容宽度大于文本框显示的宽度时使用。 |
方法
下表为文本框组件常用的方法:
实例
实例中点击按钮会显示一个信息:
序号 | 方法 & 描述 |
---|---|
1 | delete ( first, last=None ) 删除文本框里直接位置值 text.delete(10) # 删除索引值为10的值 text.delete(10, 20) # 删除索引值从10到20之前的值 text.delete(0, END) # 删除所有值 |
2 | get() 获取文件框的值 |
3 | icursor ( index ) 将光标移动到指定索引位置,只有当文框获取焦点后成立 |
4 | index ( index ) 返回指定的索引值 |
5 | insert ( index, s ) 向文本框中插入值,index:插入位置,s:插入值 |
6 | select_adjust ( index ) 选中指定索引和光标所在位置之前的值 |
7 | select_clear() 清空文本框 |
8 | select_from ( index ) 设置光标的位置,通过索引值 index 来设置 |
9 | select_present() 如果有选中,返回 true,否则返回 false。 |
10 | select_range ( start, end ) 选中指定索引位置的值,start(包含) 为开始位置,end(不包含) 为结束位置start必须比end小 |
11 | select_to ( index ) 选中指定索引与光标之间的值 |
12 | xview ( index ) 该方法在文本框链接到水平滚动条上很有用。 |
13 | xview_scroll ( number, what ) 用于水平滚动文本框。 what 参数可以是 UNITS, 按字符宽度滚动,或者可以是 PAGES, 按文本框组件块滚动。 number 参数,正数为由左到右滚动,负数为由右到左滚动。 |
实例
测试输出结果如下:
RikiFelt
751***455@qq.com
参考地址
如何通过快捷键选择(聚焦)文本框?
答:bind_all 绑定快捷键,foucus 选择文本框。
例:设置快捷键的方法好找,设置选择的方法我在百度上找不到,就去外网查了一下找到了,写出来分享一下。
具体可以自己去外网搜:how to set focus in tkinter entr box
RikiFelt
751***455@qq.com
参考地址