Python GUI编程实战--Tkinter组件详解:Entry

Tkinter 文本框:Entry
Python Tkinter 文本框用来让用户输入一行文本字符串。
你如果需要输入多行文本,可以使用 Text 组件。
你如果需要显示一行或多行文本且不允许用户修改,你可以使用 Label 组件。

语法
et = Entry( master, option, … )
master: 按钮的父容器。
options: 可选项,即该按钮的可设置的属性。这些选项可以用键 = 值的形式设置,并以逗号分隔。

常用组件选项讲解:
bg:输入框背景颜色
fg:文字颜色。值为颜色或为颜色代码,如:‘red’,’#ff0000’

bd:边框的大小,默认为 2 个像素

cursor:光标的形状设定,如arrow, circle, cross, plus 等

font:文本字体

exportselection:默认情况下,你如果在输入框中选中文本,默认会复制到粘贴板,如果要忽略这个功能刻工艺设置 exportselection=0。

highlightcolor:文本框高亮边框颜色,当文本框获取焦点时显示

justify:显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT, RIGHT, CENTER

relief:边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。

selectbackground:选中文字的背景颜色
selectborderwidth:选中文字的背景边框宽度
selectforeground:选中文字的颜色

show:指定文本框内容显示为字符,值随意,满足字符即可。如密码可以将值设为 show="*"

state:默认为 state=NORMAL, 文框状态,分为只读和可写,值为:normal/disabled

textvariable:文本框的值,是一个StringVar()对象

width:文本框宽度

xscrollcommand:设置水平方向滚动条,一般在用户输入的文本框内容宽度大于文本框显示的宽度时使用。

常用方法:
delete ( first, last=None )如
text.delete(10) # 删除索引值为10的值
text.delete(10, 20) # 删除索引值从10到20之前的值

get():获取文件框的值

icursor ( index ):将光标移动到指定索引位置,只有当文框获取焦点后成立

index ( index ):返回指定的索引值

insert ( index, s ):向文本框中插入值,index:插入位置,s:插入值

select_adjust ( index ):选中指定索引和光标所在位置之前的值

select_clear():清空文本框

select_from ( index ):设置光标的位置,通过索引值 index 来设置

select_present():如果有选中,返回 true,否则返回 false。

select_range ( start, end ):选中指定索引位置的值,start(包含) 为开始位置,end(不包含) 为结束位置start必须比end小

select_to ( index ):选中指定索引与光标之间的值

xview ( index ):该方法在文本框链接到水平滚动条上很有用。

xview_scroll ( number, what ):用于水平滚动文本框。 what 参数可以是 UNITS, 按字符宽度滚动,或者可以是 PAGES, 按文本框组件块滚动。 number 参数,正数为由左到右滚动,负数为由右到左滚动。
实战演练:
1.制作一个输入框,输入网站名

import tkinter as tk

top = tk.Tk()
lb = tk.Label(top, text="网站名")
lb.pack(side='left')
et = tk.Entry(top, bd=5)
et.pack(side='left')
top.mainloop()

Python GUI编程实战--Tkinter组件详解:Entry
2.制作一个文本输入框,并按要求插入到指定位置

import tkinter as tk

window = tk.Tk()
window.title("My Window")
window.geometry('200x200')
# 插入到光标处
def insert_point():
    var = et.get()
    t.insert('insert', var)
# 插入到最后
def insert_end():
    var = et.get()
    t.insert('end', var)
# 指定文本框内容显示为字符。如密码可以将值设为 show="*"
et = tk.Entry(window, show='*')
et.pack()
bt1 = tk.Button(window, text='insert point', width=15,
                height=2,command=insert_point)
bt1.pack()
bt2 = tk.Button(window, text='insert end', width=15,
                height=2,command=insert_end)
bt2.pack()
t = tk.Text(window, height=2)
t.pack()
window.mainloop()

Python GUI编程实战--Tkinter组件详解:Entry
下节预告:listbox
Python交流群:942913325 欢迎大家一起交流学习