第6章输入控件(Entry)
输入控件(Entry. 是用来输入或者显示单行字符串的控件。该控件允许用户输入或显示一行文字。 如果用户输入的文字长度大于Entry 控件的可显示范围时, 文字会向后滚动。 这种情况下所输入的字符串无法全部显示。可以通过移动光标,将不可见的文字部分移入可见区域。如果你想要输入多行文本, 就需要使用Text 控件。
6.1 属性
6.1.1 属性列表
属性参数 | 描述 |
---|---|
background bg |
设置背景颜色,如bg=‘red’ |
borderwidth bd |
输入控件的边框宽度。默认是1-2个像素。 |
cursor | 输入控件的光标。默认是字符插入光标(一般是一个“I-beam”类型的光标) |
disabledbackground | 定义输入控件被禁止使用时的背景颜色。 |
disabledforeground | 定义输入控件被禁止时的前景(文本)颜色。 |
exportselection | 定义是否把选中的文本,自动拷贝到剪贴板。这个参数对输入控件不起作用 |
fg foreground |
设置前景(文本)颜色 |
font | 设置字体类型与大小 |
highlightbackground | 定义输入控件没有获得输入焦点状态下的高亮背景颜色。就是输入框的亮边。 |
highlightcolor | 与highlightbackground属性类似。不过是输入控件获得输入焦点时的边框颜色。 |
highlightthickness | 输入控件获得或者失去输入焦点时的边框宽度。一般1-2个像素。 |
insertbackground | 输入控件中,插入光标的颜色 |
insertborderwidth | 插入光标的边框显示宽度。如果是一个非0的数值,光标会使用RAISED效果的边框。 |
insertofftime insertontime |
这两个属性控制插入光标闪烁效果。就是插入光标的出现和消失的时间。单位是毫秒。 |
insertwidth | 插入光标的宽度。 |
invalidcommand invcmd |
验证输入合法性的回调函数,但不能独立使用。只有设置了validatecommand回调函数且该函数返回False的情况下,才会激活invalidcommand定义的回调函数。 |
justify | 定义输入控件中文本的对齐方式。可以设置的数值为:LEFT, CENTER, RIGHT. 默认数值是LEFT. |
readonlybackground | 设置输入控件为“只读”模式的背景颜色 |
relief | 设定输入控件的3D效果,默认是flat,可以设置的参数;flat、groove、raised、ridge、solid、sunken,如relief=‘groove’ |
selectbackground | 设置选中区域的背景颜色 |
selectborderwidth | 设置选中区域边框宽度。 |
selectforeground | 设置选中区域的前景(文本)颜色 |
show | 定义如何显示输入控件中的内容。如果是非空的,控件会用定义的字符取代真实的内容。比如输入密码时,一般使用”*”替代真实的输入内容。 |
state | 定义输入控件的状态。状态有三种:NORMAL, DISABLED, READONLY。(READONLY与DISABLED类似, 只是显示的内容可以选择与拷贝。 |
takefocus | 定义是否可以使用Tab键移动输入焦点到输入控件。 |
textvariable | 关联的tkinter变量,一般是StringVar类型。如果该变量改变,则输入控件中的内容也会更新。 |
validate | 定义在什么条件下触发验证输入内容: focus:获得或者失去输入焦点时候 focuin:仅在获得输入焦点的时候 focusout: 失去输入焦点的时候 key: 改变内容的时候 ALL:以上全部情况 该属性定义的是何时启动输入验证,而验证输入内容的回调函数由validatecommand或者invalidcommand定义 |
validatecommand vcmd |
定义一个函数去验证与检查输入内容。如果输入的内容符合要求,该函数返回True,否则返回False。此属性在validate不空的时候有效。 |
width | 定义输入控件的宽度,单位是字符。 |
xscrollcommand | 将滚动条与输入控件关联起来,处理滚动条动作。滚动条只能是水平滚动条。 |
6.1.2 background(bg) | |
设置输入控件的背景颜色。bg是缩写,与background是一样的。 |
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Entry(root,bg='yellow',width=20)
b1.pack()
root.mainloop()
结果: