扫码一下
查看教程更方便
Text 控件提供高级功能,允许编辑多行文本并设置其必须显示的格式,例如更改其颜色和字体。
您还可以使用制表符和标记等优雅的结构来定位文本的特定部分,并将更改应用于这些区域。此外,还可以在文本中嵌入窗口和图像,因为此控件旨在处理纯文本和格式化文本。
这是创建Text控件的简单语法
w = Text ( master, option, ... )
序号 | 选项 | 描述 |
---|---|---|
1 | bgThe | 文本控件的默认背景颜色。 |
2 | bdThe | 文本控件周围边框的宽度。默认值为 2 像素。 |
3 | cursorThe | 当鼠标悬停在文本控件上时将出现的光标。 |
4 | exportselectionNormally | 通常,在文本控件中选择的文本会导出为窗口管理器中的选择。如果不想要这种行为,请设置exportselection=0。 |
5 | fontThe | 插入控件的文本的默认字体。 |
6 | fgThe | 用于控件中文本(和位图)的颜色。可以更改标记区域的颜色;此选项只是默认设置。 |
7 | heightThe | 以行(不是像素!)为单位的控件高度,根据当前字体大小测量。 |
8 | highlightbackgroundThe | 当文本控件没有焦点时焦点突出显示的颜色。 |
9 | highlightcolorThe | 当文本控件具有焦点时焦点突出显示的颜色。 |
10 | highlightthicknessThe | 焦点高光的厚度。默认为 1。设置 highlightthickness=0 以抑制焦点突出显示。 |
11 | insertbackgroundThe | 插入光标的颜色。默认为黑色。 |
12 | insertborderwidthSize | 插入光标周围 3-D 边框的大小。默认值为 0。 |
13 | insertofftimeThe | 插入光标在其闪烁周期内关闭的毫秒数。将此选项设置为零以抑制闪烁。默认值为 300。 |
14 | insertontimeThe | 插入光标在其闪烁周期中所处的毫秒数。默认值为 600。 |
15 | insertwidthWidth | 插入光标的宽度(其高度由其行中最高的项目决定)。默认值为 2 像素。 |
16 | padxThe | 添加到文本区域左侧和右侧的内部填充的大小。默认为一像素。 |
17 | padyThe | 添加在文本区域上方和下方的内部填充的大小。默认为一像素。 |
18 | reliefThe | 文本控件的 3-D 外观。默认为浮雕=SUNKEN。 |
19 | selectbackgroundThe | 用于显示选定文本的背景颜色。 |
20 | selectborderwidthThe | 所选文本周围使用的边框宽度。 |
21 | spacing1This | 此选项指定在每行文本上方放置多少额外的垂直空间。如果一行换行,则仅在它在显示器上占据的第一行之前添加此空间。默认值为 0。 |
22 | spacing2This | 此选项指定当逻辑行换行时在显示的文本行之间添加多少额外的垂直空间。默认值为 0。 |
23 | spacing3This | 此选项指定在每行文本下方添加多少额外的垂直空间。如果一行换行,则仅在它在显示器上占据的最后一行之后添加此空间。默认值为 0。 |
24 | stateNormally | 通常,文本控件响应键盘和鼠标事件;设置 state=NORMAL 以获得此行为。如果您设置 state=DISABLED,文本小部件将不会响应,您也无法以编程方式修改其内容。 |
25 | tabsThis | 此选项控制制表符如何定位文本。 |
26 | widthThe | 以字符(不是像素!)为单位的控件宽度,根据当前字体大小测量。 |
27 | wrapThis | 此选项控制太宽的线条的显示。设置 wrap=WORD 它将在适合的最后一个单词之后换行。使用默认行为 wrap=CHAR,任何太长的行都将在任何字符处断开。 |
28 | xscrollcommandTo | 要使文本控件水平滚动,请将此选项设置为水平滚动条的 set() 方法。 |
29 | yscrollcommandTo | 要使文本控件可垂直滚动,请将此选项设置为垂直滚动条的 set() 方法。 |
文本对象有这些方法
序号 | 方法 | 描述 |
---|---|---|
1 | delete(startindex [,endindex]) | 此方法删除特定字符或文本范围。 |
2 | get(startindex [,endindex]) | 此方法返回特定字符或文本范围。 |
3 | index(index) | 返回基于给定索引的索引的绝对值。 |
4 | insert(index [,string]...) | 此方法在指定的索引位置插入字符串。 |
5 | see(index) | 如果位于索引位置的文本可见,则此方法返回 true。 |
文本小部件支持三种不同的辅助结构:标记、标签和索引 -
标记用于为给定文本中两个字符之间的位置添加书签。处理标记时,我们有以下方法可用
序号 | 方法 | 描述 |
---|---|---|
1 | index(mark) | 返回特定标记的行和列位置。 |
2 | mark_gravity(mark [,gravity]) | 返回给定标记的重力。如果提供了第二个参数,则为给定标记设置重力。 |
3 | mark_names() | 从文本小部件返回所有标记。 |
4 | mark_set(mark, index) | 通知给定标记的新位置。 |
5 | mark_unset(mark) | 从文本控件中删除给定的标记。 |
标签用于将名称与文本区域相关联,这使得修改特定文本区域的显示设置的任务变得容易。标签还用于将事件回调绑定到特定范围的文本。
以下是处理选项卡的可用方法
序号 | 方法 | 描述 |
---|---|---|
1 tag_add(tagname, startindex[,endindex] ...) | 此方法标记由 startindex 定义的位置,或由位置 startindex 和 endindex 分隔的范围。 | |
2 tag_config | 可以使用此方法来配置标签属性,包括 justify(center, left, or right)、tabs(此属性与 Text 控件 tabs 的属性具有相同的功能)和 underline(用于为标记文本添加下划线) . | |
3 tag_delete(tagname) | 此方法用于删除和移除给定的标签。 | |
4 tag_remove(tagname [,startindex[.endindex]] ...) | 应用此方法后,从提供的区域中删除给定的标签,而不删除实际的标签定义。 |
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()