Python Tkinter Text



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

您还可以使用制表符和标记等优雅结构来查找文本的特定部分,并将更改应用于这些区域。此外,您可以在文本中嵌入窗口和图像,因为此小部件旨在处理纯文本和格式化文本。

语法

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


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

参数

  • master - 这表示父窗口
  • options − 这是此小部件最常用的选项列表。这些 options 可以用作用逗号分隔的键值对。
选项 描述
bg

文本 Widget 的默认背景色

bd

文本 Widget 周围的边框宽度。默认值为 2 像素。

cursor

当鼠标悬停在文本 widget 上时将出现的光标。

exportselection

通常,在文本 Widget 中选择的文本将导出为窗口管理器中的选择。如果您不希望出现这种行为,请设置 exportselection=0。

font

插入 Widget 中的文本的默认字体。

fg

用于 Widget 中的文本 (和位图) 的颜色。您可以更改标记区域的颜色;此选项只是默认选项。

height

小部件的高度,以线条为单位(不是像素!),根据当前字体大小测量。

highlightbackground

当文本 Widget 没有焦点时,焦点的颜色会突出显示。

highlightcolor

当文本 Widget 具有焦点时,焦点的颜色会突出显示。

highlightthickness

焦点高光的粗细。默认值为 1。设置 highlightthickness=0 以禁止显示焦点高亮显示。

insertbackground

插入光标的颜色。默认值为 black。

insertborderwidth

插入光标周围的 3-D 边框的大小。默认值为 0。

insertofftime

插入光标在其闪烁周期内关闭的毫秒数。将此选项设置为 0 可抑制闪烁。默认值为 300。

insertontime

插入光标在其闪烁周期内打开的毫秒数。默认值为 600。

insertwidth

插入光标的宽度(其高度由其行中最高的项决定)。默认值为 2 像素。

padx

添加到文本区域左侧和右侧的内部填充的大小。默认值为 1 像素。

pady

在文本区域上方和下方添加的内部填充的大小。默认值为 1 像素。

relief

文本 Widget 的 3-D 外观。默认值为 relief=SUNKEN。

selectbackground

用于显示所选文本的背景色。

selectborderwidth

要在所选文本周围使用的边框宽度。

spacing1

此选项指定在每行文本上方放置多少额外的垂直间距。如果换行,则此空间仅添加到它在显示屏上占据的第一行之前。默认值为 0。

spacing2

此选项指定当逻辑行换行时,要在显示的文本行之间添加多少额外的垂直间距。默认值为 0。

spacing3

此选项指定在每行文本下方添加的额外垂直间距量。如果换行,则此空间仅在它在显示屏上占据的最后一行之后添加。默认值为 0。

state

通常,文本 Widget 会响应键盘和鼠标事件;set state=NORMAL 来获得此行为。如果设置 state=DISABLED,则文本小组件将不会响应,并且你也无法以编程方式修改其内容。

tabs

此选项控制制表符如何定位文本。

width

窗口小部件的宽度,以字符为单位(不是像素),根据当前字体大小进行测量。

wrap

此选项控制过宽线条的显示。设置 wrap=WORD,它将在最后一个适合的单词之后换行。使用默认行为 wrap=CHAR,任何太长的行都将在任何字符处断开。

xscrollcommand

要使文本小部件可水平滚动,请将此选项设置为水平滚动条的 set() 方法。

yscrollcommand

要使文本 Widget 可垂直滚动,请将此选项设置为垂直滚动条的 set() 方法。

方法

文本对象具有以下方法 -

方法 描述
delete(startindex [,endindex])

此方法将删除特定字符或文本范围。

get(startindex [,endindex])

此方法返回特定字符或文本范围。

index(index)

返回基于给定索引的索引的绝对值。

insert(index [,string]...)

此方法在指定的索引位置插入字符串

see(index)

如果位于索引位置的文本可见,则此方法返回 true。

文本小部件支持三种不同的帮助程序结构:标记、制表符和索引 -

标记用于为给定文本中两个字符之间的位置添加书签。在处理标记时,我们可以使用以下方法 -

方法 描述
index(mark)

返回特定标记的行和列位置。

mark_gravity(mark [,gravity])

返回给定标记的重力。如果提供了第二个参数,则为给定标记设置重力。

mark_names()

返回 Text 小部件中的所有标记。

mark_set(mark, index)

将新位置通知给给定的标记。

mark_unset(mark)

从 Text 小部件中删除给定的标记。

标签用于将名称与文本区域相关联,从而轻松修改特定文本区域的显示设置。标签还用于将事件回调绑定到特定的文本范围。

以下是处理选项卡的可用方法 -

方法 描述
tag_add(tagname, startindex[,endindex] ...)

此方法标记由 startindex 定义的位置,或由位置 startindex 和 endindex 分隔的范围。

tag_config

您可以使用此方法配置标记属性,其中包括 justify(居中、左或右)、tabs(此属性与 Text widget 选项卡的属性具有相同的功能)和 underline(用于为标记的文本添加下划线)。

tag_delete(tagname)

该方法用于删除和移除给定的标签。

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 文本