Tkinter 文本

Tkinter 文本

文本小部件提供高级功能,允许您编辑多行文本并格式化其显示方式,例如更改其颜色和字体。

您还可以使用优雅的结构,如选项卡和标记来定位文本的特定部分,并对这些区域应用更改。此外,您可以在文本中嵌入窗口和图像,因为此小部件被设计成处理纯文本和格式化文本。

语法

以下是创建此小部件的简单语法 –

w = Text ( master, option, ... )

参数

  • master − 这代表父窗口

  • options − 这是此小部件最常用的选项列表。这些选项可以使用逗号分隔的键值对形式使用。

编号 选项和描述
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 插入光标周围的3D边框的大小。默认为0。
13 insertofftime 插入光标在闪烁周期内离开的毫秒数。将此选项设置为零可以取消闪烁。默认为300。
14 insertontime 插入光标在闪烁周期内停留的毫秒数。默认为600。
15 insertwidth 插入光标的宽度(其高度由其所在行中最高的项目确定)。默认为2像素。
16 padx 添加到文本区域左右两侧的内部填充的大小。默认为一像素。
17 pady 添加到文本区域上下两侧的内部填充的大小。默认为一像素。
18 relief 文本小部件的3D外观。默认值是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()方法。

方法

文本对象具有以下方法 −

编号 方法与描述
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 您可以使用这个方法来配置标记的属性,其中包括居中对齐(center,left或right)、制表位(该属性具有与Text部件制表位属性相同的功能)和下划线(用于给标记的文本添加下划线)。
3 tag_delete(tagname) 该方法用于删除给定的标记。
4 tag_remove(tagname [,startindex[.endindex]] …) 在应用此方法后,给定的标记将从提供的区域中移除,但实际的标记定义不会被删除。

示例

尝试以下示例自己运行:

from tkinter import *
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()

当以上代码被执行时,它会产生以下结果 −

Tkinter 文本

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程