Text
文本小部件提供了高级功能,允许您编辑多行文本并格式化它必须显示的方式,例如更改其颜色和字体。
您还可以使用标签和标记等优雅结构来查找文本的特定部分,并将更改应用于这些区域。 此外,您可以在文本中嵌入窗口和图像,因为此窗口小部件旨在处理纯文本和格式化文本。
语法 (Syntax)
以下是创建此小部件的简单语法 -
w = Text ( master, option, ... )
参数 (Parameters)
master - 这表示父窗口。
options - 以下是此小部件最常用的选项列表。 这些选项可用作以逗号分隔的键值对。
Sr.No. | 选项和说明 |
---|---|
1 | bg 文本小部件的默认背景颜色。 |
2 | bd 文本小部件周围边框的宽度。 默认值为2像素。 |
3 | cursor 鼠标悬停在文本小部件上时将显示的光标。 |
4 | exportselection 通常,在文本小部件中选择的文本将导出为窗口管理器中的选择。 如果您不想要该行为,请设置exportselection = 0。 |
5 | font 插入窗口小部件的文本的默认字体。 |
6 | fg 窗口小部件中用于文本(和位图)的颜色。 您可以更改标记区域的颜色; 此选项只是默认选项。 |
7 | height 线条小部件的高度(不是像素!),根据当前字体大小测量。 |
8 | highlightbackground 当文本小部件没有焦点时,焦点的颜色会突出显示。 |
9 | highlightcolor 当文本小部件具有焦点时,焦点的颜色会突出显示。 |
10 | highlightthickness 焦点的厚度突出显示。 默认值为1.设置highlightthickness = 0以禁止显示焦点突出显示。 |
11 | insertbackground 插入光标的颜色。 默认为黑色。 |
12 | insertborderwidth 插入光标周围的三维边框的大小。 默认值为0。 |
13 | insertofftime 插入光标在闪烁周期内关闭的毫秒数。 将此选项设置为零可抑制闪烁。 默认值为300。 |
14 | insertontime 插入光标在闪烁周期内的毫秒数。 默认值为600。 |
15 | insertwidth 插入光标的宽度(其高度由其行中最高的项确定)。 默认值为2像素。 |
16 | padx 内部填充的大小添加到文本区域的左侧和右侧。 默认值是一个像素。 |
17 | pady 内部填充的大小添加在文本区域的上方和下方。 默认值是一个像素。 |
18 | relief 文本小部件的三维外观。 默认是救济= SUNKEN。 |
19 | selectbackground 要使用的背景颜色显示所选文本。 |
20 | selectborderwidth 要在所选文本周围使用的边框宽度。 |
21 | spacing1 此选项指定在每行文本上方放置多少额外垂直空间。 如果换行,则仅在它占据显示器的第一行之前添加此空间。 默认值为0。 |
22 | spacing2 此选项指定在逻辑行换行时在显示的文本行之间添加多少额外垂直空间。 默认值为0。 |
23 | spacing3 此选项指定在每行文本下方添加多少额外垂直空间。 如果换行,则仅在它占据显示器的最后一行之后添加此空间。 默认值为0。 |
24 | state 通常,文本小部件响应键盘和鼠标事件; 设置state = NORMAL以获得此行为。 如果设置state = DISABLED,文本小部件将不响应,您也无法以编程方式修改其内容。 |
25 | tabs 此选项控制制表符如何定位文本。 |
26 | width 小部件的宽度(不是像素!),根据当前字体大小测量。 |
27 | wrap 此选项控制太宽的行的显示。 设置wrap = WORD,它将在最后一个适合的单词之后打破该行。 使用默认行为wrap = CHAR,任何过长的行都将在任何字符处被破坏。 |
28 | xscrollcommand 要使文本窗口小部件可水平滚动,请将此选项设置为水平滚动条的set()方法。 |
29 | yscrollcommand 若要使文本窗口小部件可垂直滚动,请将此选项设置为垂直滚动条的set()方法。 |
方法 (Methods)
文本对象有这些方法 -
Sr.No. | 方法和描述 |
---|---|
1 | delete(startindex [,endindex]) 此方法删除特定字符或文本范围。 |
2 | get(startindex [,endindex]) 此方法返回特定字符或文本范围。 |
3 | index(index) 返回基于给定索引的索引的绝对值。 |
4 | insert(index [,string]...) 此方法在指定的索引位置插入字符串。 |
5 | see(index) 如果位于索引位置的文本可见,则此方法返回true。 |
文本小部件支持三种不同的帮助器结构:标记,标签和索引 -
标记用于标记给定文本中两个字符之间的位置。 处理标记时我们有以下方法 -
Sr.No. | 方法和描述 |
---|---|
1 | index(mark) 返回特定标记的行和列位置。 |
2 | mark_gravity(mark [,gravity]) 返回给定标记的重力。 如果提供了第二个参数,则为给定标记设置重力。 |
3 | mark_names() 返回Text小部件中的所有标记。 |
4 | mark_set(mark, index) 通知给定标记的新位置。 |
5 | mark_unset(mark) 从“文本”小部件中删除给定标记。 |
标签用于将名称与文本区域相关联,这使得修改特定文本区域的显示设置变得容易。 标签还用于将事件回调绑定到特定范围的文本。
以下是处理标签的可用方法 -
Sr.No. | 方法和描述 |
---|---|
1 | tag_add(tagname, startindex[,endindex] ...) 此方法标记由startindex定义的位置或由位置startindex和endindex分隔的范围。 |
2 | tag_config 您可以使用此方法配置标记属性,包括,justify(中心,左侧或右侧),tabs(此属性具有与Text小部件选项卡属性相同的功能)和下划线(用于为标记文本加下划线) 。 |
3 | tag_delete(tagname) 此方法用于删除和删除给定标记。 |
4 | tag_remove(tagname [,startindex[.endindex]] ...) 应用此方法后,将从提供的区域中删除给定标记,而不删除实际的标记定义。 |
例子 (Example)
请亲自尝试以下示例 -
from Tkinter import *
def onclick():
pass
root = Tk()
text = Text(root)
text.insert(INSERT, "Hello.....")
text.insert(END, "Bye Bye.....")
text.pack()
text.tag_add("here", "1.0", "1.4")
text.tag_add("start", "1.8", "1.13")
text.tag_config("here", background="yellow", foreground="blue")
text.tag_config("start", background="black", foreground="green")
root.mainloop()
执行上述代码时,会产生以下结果 -