当前位置: 首页 > news >正文

【Tkinter系列11/15】小部件 (Text)

24. 小部件Text

文本小部件是一种更通用的方法 处理比小部件多行文本。文本小部件几乎是一个完整的文本 窗口中的编辑器:Label

  • 您可以将文本与不同的字体、颜色和 背景。

  • 您可以用文本穿插嵌入的图像。一 图像被视为单个字符。请参见第 24.3 节 “文本小部件图像”。

  • 索引是一种描述方式 文本的两个字符之间的特定位置 控件。请参见第 24.1 节 “文本小部件索引”。

  • 文本小部件可能包含字符之间的不可见标记对象 位置。请参见第 24.2 节 “文本小部件标记”。

  • 文本微件允许您定义区域的名称 称为标记的文本。您可以 更改标记区域的外观,更改其 字体、前景色和背景色以及其他 选择。请参见第 24.5 节 “文本小部件标签”。

  • 您可以将事件绑定到标记区域。参见第 54 节 “事件”。

  • 您甚至可以在 包含任何 Tkinter 小部件的“窗口”——甚至是包含其他 部件。窗口也被视为单个窗口 字符。请参见第 24.4 节 “文本小部件窗口”。

创建文本构件作为根窗口的子窗口或 框架命名 :parent

 w  = tk.Text( parent ,  option , ...)

构造函数返回新小部件。 选项包括:Text

表 33.文本微件选项

autoseparators如果设置了该选项,则该选项控制是否 分隔符会自动添加到撤消中 每次插入或删除后堆叠(如果)或不插入或不插入(如果)。有关概述 撤消机制,请参见第 24.7 节 “文本小部件撤消/重做” 堆栈”。undoautoseparatorsautoseparators=Trueautoseparators=False
bgbackground文本构件的默认背景色。 请参见第 5.3 节 “颜色”。
bdborderwidth文本构件周围的边框宽度; 请参见第 5.1 节 “尺寸”。这 默认值为两个像素。
cursor鼠标悬停时将出现的光标 文本微件。请参见第 5.8 节 “游标”。
exportselection通常,在文本小部件中选择的文本是 导出为窗口管理器中的选择。 如果不设置,请设置 想要这种行为。exportselection=0
font插入到构件中的文本的默认字体。 请注意,您可以在 通过使用标签更改属性的小组件 一些文字。请参见第 5.4 节 “键入字体”。
fgforeground用于的颜色 小部件中的文本(和位图)。您可以 更改标记区域的颜色;此选项是 只是默认值。
height小部件的高度(以线条为单位)(不是像素!),测量 根据当前大小。font
highlightbackground颜色 当文本构件没有焦点时突出显示 重点。请参见第 53 节 “焦点:路由键盘输入”。
highlightcolor颜色 当“文本”微件具有焦点时,焦点突出显示。
highlightthickness焦点的粗细突出显示。默认值为 。设置为禁止显示 的焦点突出显示。1highlightthickness=0
insertbackground颜色 插入光标。默认值为黑色。
insertborderwidth插入光标周围的三维边框的大小。 默认值为 。0
insertofftime插入光标的毫秒数 在其眨眼周期内关闭。将此选项设置为 零表示抑制闪烁。默认值为 300。
insertontime插入光标的毫秒数 在其眨眼周期内打开。默认值为 600。
insertwidth插入光标的宽度(其高度为 由其行中最高的项目决定)。 默认值为 2 像素。
maxundo此选项设置最大操作数 保留在撤消堆栈上。有关概述 撤消机制,请参见第 24.7 节 “文本小部件撤消/重做” 堆栈”。将此选项设置为 -1 以指定无限制 撤消堆栈中的条目数。
padx添加到左侧的内部填充的大小 和文本区域的右侧。默认值为一个像素。 有关可能的值,请参见第 5.1 节 “维度”。
pady上面添加的内部填充的大小和 文本区域下方。默认值为一个像素。
relief文本构件的三维外观。默认值为 ;有关其他值,请参见第 3.5 节 “浮雕样式”。relief=tk.SUNKEN
selectbackground用于显示所选文本的背景色。
selectborderwidth要在选定边框周围使用的边框宽度 发短信。
selectforeground用于显示所选文本的前景色。
spacing1此选项指定多少额外的垂直空间 放在每行文本的上方。如果一行换行, 此空格仅在第一行之前添加 占据显示屏。默认值为 。0
spacing2This option specifies how much extra vertical space to add between displayed lines of text when a logical line wraps. Default is . 0
spacing3此选项指定多少额外的垂直空间 添加到每行文本下方。如果一行换行, 此空格仅在最后一行之后添加 占据显示屏。默认值为 。0
state通常,文本小部件响应键盘和 鼠标事件;设置为 获取此行为。如果设置 ,则文本构件将不会 响应,您将无法修改其 内容以编程方式。state=tk.NORMALstate=tk.DISABLED
tabs此选项控制制表符的位置 发短信。请参见第 24.6 节 “在文本构件中设置选项卡”。
takefocus通常,焦点将访问文本小部件(请参见第 53 节 “焦点:路由键盘输入”)。如果您不希望在微件中聚焦,请设置。takefocus=0
undo将此选项设置为启用 撤消机制,或 禁用它。请参见第 24.7 节 “文本小部件撤消/重做” 堆栈”。TrueFalse
width小部件的宽度(以字符为单位)(不是像素! 根据当前字体大小进行测量。
wrap此选项控制以下行的显示: 太宽了。
  • 使用默认行为时,任何行都变得太 长将在任何角色处被打破。wrap=tk.CHAR

  • 设置,它将 在最后一个单词之后换行 适合。wrap=tk.WORD

  • 如果您希望能够创建以下行: 太长而无法放入窗口,设置并提供水平 滚动条。wrap=tk.NONE

xscrollcommand要使文本构件水平滚动, 将此选项设置为方法 的水平滚动条。.set
yscrollcommand要使文本微件可垂直滚动,请设置 此选项的方法 垂直滚动条。.set

24.1. 小部件索引Text

索引是 指定文本微件内容中的位置。 索引是具有以下形式之一的字符串:

'line.column'

给定(从零开始计数)之前的位置 给定(计数) 从一)。示例:是 文本开头的位置; 是第四个之前的位置 第二行的字符。columnline'1.0''2.3'

'line.end'

在 给定的行(从一开始计数)。所以,对于 例如,索引是 位置在第十行的末尾。'10.end'

tk.INSERT

插入光标在文本中的位置 控件。此常量等于字符串 。'insert'

tk.CURRENT

最靠近鼠标的字符的位置 指针。此常量等于字符串 。'current'

tk.END

文本最后一个字符之后的位置。 此常量等于字符串 。'end'

tk.SEL_FIRST

如果小部件中的某些文本当前处于选中状态 (如将鼠标拖到其上),这是位置 在选择开始之前。如果您尝试使用 此索引未选择任何内容,将引发异常。 此常量等于字符串 。tk.TclError'sel.first'

tk.SEL_LAST

所选内容结束后的位置(如果有)。如 使用 ,如果使用此类索引,则会出现异常 并且没有选择。 此常量等于字符串 。SEL_FIRSTtk.TclError'sel.last'

'markname'

您可以使用标记作为索引;只需传递其名称 预期索引的位置。请参见第 24.2 节 “文本小部件标记”。

'tag.first'

第一个字符之前的位置 用名称标记的区域;请参见第 24.5 节 “文本小部件标签”。tag

'tag.last'

标记的最后一个字符之后的位置 地区。

'@x,y'

最接近 坐标 (, )。xy

embedded-object

如果文本中嵌入了图像或窗口 小部件,您可以使用 、 或嵌入式小部件作为 一个索引。请参见第 24.3 节 “文本小部件图像”和第 24.4 节 “文本小部件窗口”。PhotoImageBitmapImage

除了上述基本索引选项外,您还可以 通过添加任意 基本索引或索引表达式的这些后缀:

n chars

从给定索引中,向前移动字符。 此操作将跨越线边界。n

例如,假设第一行看起来像 这:

 abcdef

索引表达式 “” 表示位置 介于 和 之间。你 可以省略这些中的空白和缩写关键字 表达式(如果结果明确)。这 示例可以缩写为 “”。1.0 + 5 charsef1.0+5c

n chars

与前面的形式类似,但位置向后移动字符n

n lines

将行移过给定索引。特金特试图离开 同一列中的新位置与在 行它左边,但如果新位置的线是 较短,新位置将在 线。n

n lines

移动给定索引之前的行。n

linestart

移动到第一个字符之前的位置 给定的索引。例如,位置 "" 指最接近 鼠标指针。current linestart

lineend

移动到最后一个字符之后的位置 给定的索引。例如,位置 "" 指包含结尾的行的末尾 的当前选择。sel.last lineend

wordstart

单词开头之前的位置 包含给定的索引。例如,索引 "" 指包含 第 44 行的第 11 位。11.44 wordstart

就此操作而言,一个词是 连续字母、数字或 下划线 () 字符或单个 不是这些类型的字符。_

24.2. 小部件标记Text

标记表示浮动 位于文本微件内容中的某个位置。

  • 您可以通过为每个标记命名来处理它。这个名字 可以是不包含空格的任何字符串,也可以是 时期。

  • 有两个特殊标记。 是插入光标的当前位置,并且是最接近 鼠标光标。tk.INSERTtk.CURRENT

  • 标记与相邻内容一起浮动。如果你 修改远离标记的文本,即标记 相对于其直接位置保持在同一位置 邻居。

  • 标记具有称为重力的属性,用于控制发生的情况 在标记处插入文本时。默认重力为 ,这意味着当新文本 插入该标记处,标记保留在 新文本。如果将标记的重力设置为 (使用文本小部件的方法),则标记将保持在 位于该标记处新插入的文本之前的位置。tk.RIGHTtk.LEFT.mark_gravity()

  • 删除标记周围的文本不会删除 标记。如果要删除标记,请使用文本上的方法 控件。.mark_unset()

请参阅下面的第 24.8 节 “文本小部件上的方法”,以查看 如何使用标记。

24.3. 小部件图像Text

您可以将图像或位图放入文本构件中。是的 被视为大小为自然的单个字符 对象的大小。请参见第 5.9 节 “图像”和第 5.7 节 “位图”。

图像通过调用 小部件的方法。看 下面是调用序列和其他方法 图像处理。.image_create()

通过将图像名称传递给方法来操作图像 在文本微件上。你可以给特金特起一个名字 图像,或者您可以让 Tkinter 生成默认值 该映像的名称。

图像可以在同一小部件中出现任意次数。每个实例将携带一个 唯一名称。此名称可用作索引。Text

24.4. 小部件窗口Text

您可以放置任何 Tkinter 小部件——甚至是框架 包含其他微件 - 到文本微件中。为 例如,您可以放置一个功能齐全的按钮或一组 的单选按钮到文本小部件中。

在 文本微件以添加嵌入微件。对于召唤 序列和相关方法,请参见第 24.8 节 “文本小部件上的方法”。.window_create()

24.5. 小部件标签Text

有很多方法可以更改外观和 文本微件中项目的功能。对于文本, 您可以更改字体、大小和颜色。另外,您可以 使文本、小部件或嵌入的图像响应 键盘或鼠标操作。

要控制这些外观和功能特性,您需要 将每个要素与标记关联。 然后,您可以将标签与任意数量的 微件中的文本。

  • 标签的名称可以是任何不 包含空格或句点。

  • 有一个特殊的预定义标记称为 。这是当前选择的区域, 如果有的话。SEL

  • 由于任何字符都可能是多个标签的一部分, 有一个标签堆栈 对所有标签进行排序。条目添加在 标记列表和更高条目的优先级高于 较早的条目。

    因此,例如,如果有一个字符 c 是两个字符的一部分 标记区域 T 1 和 T2, 并且 t 1 在标签堆栈中比 t 2 更深, T 1 希望文本为绿色,T 2 希望文本为蓝色,C 将呈现为蓝色,因为 T 2 优先于 T 1

  • 您可以更改标签堆栈中标签的顺序。

标签是使用文本构件上的方法创建的。有关这方面的信息,请参见下面的第 24.8 节 “文本小部件上的方法” 及相关方法。.tag_add()

24.6. 在小部件中设置选项卡Text

微件选项为您提供了多种设置制表位的方法 在小部件中。tabsText

  • 默认设置是每八个字符放置制表符。

  • 若要设置特定的制表位,请将此选项设置为 一个或多个距离的序列。例如 设置将 将制表位放在距左侧 3、5 和 12 厘米的位置。 超过您设置的最后一个选项卡,选项卡具有相同的宽度 作为最后两个现有选项卡之间的距离 停止。所以,继续我们的例子,因为是 7 厘米,如果用户继续按 Tab 键,光标将是 定位在 19 厘米、26 厘米、33 厘米等。tabs=('3c', '5c', '12c')12c-5c

  • 通常,制表符后面的文本与 其左边缘位于制表位上,但您可以包括 距离后列表中的任何关键字、或,以及 这将更改文本之后的位置 每个选项卡。tk.LEFTtk.RIGHTtk.CENTERtk.NUMERIC

    • 制表位具有默认值 行为。tk.LEFT

    • 制表位将定位 文本,使其右边缘位于停止点上。tk.RIGHT

    • 选项卡将 制表位上的文本后面。tk.CENTER

    • 制表位将放置 在停止左侧跟随文本,直到 第一个句点 () 中的 文本 - 之后,句点将居中 停止,文本的其余部分将定位为 它的权利。tk.NUMERIC'.'

    例如,设置将设置四个制表位:左对齐的制表位半个 距左侧英寸,右对齐制表位 距左侧 0.8 英寸,居中对齐的制表位 左起 1.2 英寸,数字对齐的制表位 左起 2 英寸。tabs=('0.5i', '0.8i', tk.RIGHT, '1.2i', tk.CENTER, '2i', tk.NUMERIC)

24.7. 小部件撤消/重做 叠Text

小部件具有内置机制 允许您实施撤消和重做操作 可以取消或恢复对其中文本的更改 小部件。Text

以下是撤消/重做堆栈的工作原理:

  • 对内容的每次更改都通过推送来记录 堆栈中描述更改的条目, 无论是插入还是删除。这些条目 记录内容的旧状态以及 新状态:如果删除,则删除的文本为 记录;如果是插入,则插入的文本是 记录,以及位置描述 以及是插入还是删除。

  • 您的程序还可以将称为分隔符的特殊记录推送到堆栈上。

  • 撤消操作更改 小部件的内容到它们在某些时候的内容 上一点。它通过反转所有 将更改推送到撤消/重做堆栈,直到它 到达分隔符或直到它用完堆栈。

    但是,请注意,特金特还记得多少 堆栈在撤消操作中被反转,直到 其他一些编辑操作更改了 小部件。

  • 重做操作仅有效 如果自上次以来未发生任何编辑操作 撤消操作。它重新应用所有未完成的操作 操作。

对于用于实现撤消/重做堆栈的方法, 请参见第 24.8 节 “文本构件上的方法”中的 、、 和 方法。撤消机制不是 默认启用;您必须在小部件中设置该选项。.edit_redo.edit_reset.edit_separator.edit_undoundo

24.8. 小部件上的方法Text

这些方法可用于所有文本小部件:

.bbox(index)

返回字符的边界框 给定索引,一个 4 元组。如果字符 不可见,返回 .注意 此方法可能无法返回准确的值 除非你调用该方法(请参见第 26 节 “通用小部件方法”)。(xywidthheight)None.update_idletasks()

.compare(index1opindex2)

比较两个指数在 文本构件,如果关系在 和 之间保持,则返回 true。 指定要使用的比较,其中之一:、、、、、 或 。opindex1index2op'<''<=''==''!=''>=''>'

例如,对于文本构件,如果第二行的开头为 中文本的前面或结尾处。tt.compare('2.0', '<=', END)t

.delete(index1index2=None)

删除紧随 之后的文本。如果 省略第二个参数,只有一个字符是 删除。如果给出了第二个索引,则删除 直到(但不包括)角色 后。召回 索引位于字符之间index1index2

.dlineinfo(index)

返回包含以下内容的行的边界框 给定的.对于边界框的形式,以及 有关更新空闲任务的注意事项,请参阅 方法的定义 以上。index.bbox

.edit_modified(arg=None)

查询、设置或清除修改后的 旗帜。此标志用于跟踪 小部件的内容是否已 改变。例如,如果您正在实现 小部件中的文本编辑器,您 可以使用修改后的标志来确定是否 自上次保存以来,内容已更改 内容到文件。Text

在没有参数的情况下调用时,如果修改后的标志已 设置,如果很清楚。您可以 还可以通过将值传递给此方法来显式设置修改后的标志,或清除 它通过传递一个值。TrueFalseTrueFalse

插入或删除文本的任何操作,无论 通过程序操作或用户操作,或撤消或 重做操作,将设置修改后的标志。

.edit_redo()

执行重做操作。有关细节,请参见第 24.7 节 “文本构件撤消/重做” 堆栈”。

.edit_reset()

清除撤消堆栈。

.edit_separator()

将分隔符推到撤消堆栈上。这 分隔符限制将来撤消的范围 仅包含自 以来推送的更改的操作 分离器被推入。有关细节,请参见第 24.7 节 “文本构件撤消/重做” 堆栈”。

.edit_undo()

撤消对小部件内容所做的所有更改 由于最后一个分隔符被推到撤消 堆栈,或者一直到堆栈的底部,如果 堆栈不包含分隔符。有关细节,请参见第 24.7 节 “文本构件撤消/重做” 堆栈”。这是一个错误 如果撤消堆栈为空。

.image_create(index[, option=value, ...])

此方法将图像插入到小部件中。这 图像被视为另一个字符,其 大小是图像的自然大小。

此方法的选项如表所示 下面。您可以传递一系列参数,也可以传递 选项名称和值的字典。option=value

align此选项指定图像如何 如果高度较小,则垂直对齐 比其包含线的高度。 值可能是对齐的 它位于其空间的顶部; 居中; 将其放在底部; 或排队 带有文本基线的图像底部。topcenterbottombaseline
image要使用的图像。请参见第 5.9 节 “图像”。
name您可以为此实例分配名称 图像。如果省略此选项,Tkinter 将生成一个唯一的名称。如果 创建映像的多个实例 在同一个小部件中,Tkinter 将通过以下方式生成一个唯一的名称: 后附加一个 “”,后跟一个数字。Text#
padx如果提供,此选项是 要在两者上添加的额外空间像素 图像的侧面。
pady如果提供,此选项是 要添加上方的额外空间的像素和 在图像下方。

.get(index1index2=None)

使用此方法从中检索当前文本 小部件。检索从索引 开始。如果 省略第二个参数,你得到 后面的字符。如果您提供 第二个索引,你得到这两个之间的文本 指标。嵌入的图像和窗口(小部件)是 忽视。如果范围包括多行, 它们由换行符 () 分隔 字符。index1index1'\n'

.image_cget(indexoption)

检索在 上设置的选项的当前值 嵌入的图像,使用索引调用此方法 指向图像和选项的名称。

.image_configure(indexoption, ...)

要在嵌入图像上设置一个或多个选项, 使用指向 图像作为第一个参数,以及一对或多对。option=value

如果未指定任何选项,则返回 字典定义了图像上的所有选项, 和相应的值。

.image_names()

此方法返回所有 文本小部件的嵌入图像。

.index(i)

对于索引,此方法 返回窗体中的等效位置。i'line.char'

.insert(indextexttags=None)

插入给定的 鉴于。textindex

如果省略参数,则 新插入的文本将使用任何标签进行标记 适用于之前和之后字符 插入点。tags

如果要对文本应用一个或多个标签 您正在插入,提供作为第三个参数 标记字符串的元组。适用于 的任何标记 插入点周围的现有字符为 忽视。注意:第三 参数必须是元组。如果您提供列表 论点,特金特将默默地不适用 标签。如果提供一个字符串,则每个字符将 被视为标记。

.mark_gravity(markgravity=None)

更改或查询现有商标的严重性; 请参见上面的第 24.2 节 “文本小部件标记”,了解 重力解释。

要设置重力,请以标记的名称传递, 后跟 或 。找到现有重力 标记,省略第二个参数,方法返回 或 。tk.LEFTtk.RIGHTtk.LEFTtk.RIGHT

.mark_names()

返回 窗口,包括和。tk.INSERTtk.CURRENT

.mark_next(index)

返回给定 ; 后面的标记名称; 如果没有以下标记,该方法返回 一个空字符串。index

如果采用数字形式,则该方法返回 该位置的第一个标记。如果 是 标记,该方法返回后面的下一个标记 该标记,可能具有相同的数字 位置。indexindex

.mark_previous(index)

返回给定 前面的标记的名称。 如果没有前面的标记,该方法返回 一个空字符串。index

如果采用数字形式,则该方法返回 返回该位置的最后一个标记。如果 是标记,则该方法返回前面的标记, 可能处于相同的数字位置。indexindex

.mark_set(markindex)

如果不存在带有名称的标记,则使用重力创建一个标记并将其放置在点的位置。如果 该标记已存在,它已移至新的 位置。marktk.RIGHTindex

此方法可能会更改 或 索引的位置。tk.INSERTtk.CURRENT

.mark_unset(mark)

删除命名标记。此方法不能用于 删除 OR 标记。tk.INSERTtk.CURRENT

.scan_dragto(xy)

请参阅下面的 。.scan_mark

.scan_mark(xy)

此方法用于实现 一个小部件。通常,用户 在某个位置按住鼠标按钮 ,然后在 所需的方向,并且小部件在该方向上移动 方向与距离成正比的速率 按下按钮后鼠标已移动。 运动可以是垂直或 水平滚动。Text

要实现此功能,请向下绑定鼠标按钮 调用 、 和 are 的处理程序的事件 当前鼠标位置。然后将事件绑定到一个处理程序 调用 ,新鼠标的位置和 位置。.scan_mark(xy)xy<Motion>.scan_dragto(xy)xy

.search(patternindexoption, ...)

搜索(其中 可以是字符串或正则表达式) 缓冲区从给定的 .如果它 成功,它返回表单的索引;如果失败,则 返回一个空字符串。patternindex'line.char'

此方法的允许选项包括:

backwards将此选项设置为 从索引向后搜索。违约 是前锋。True
count如果将此选项设置为控制变量,则当 有一个匹配项,你可以检索 使用 匹配的文本长度 关于那个的方法 变量,方法返回后。IntVar.get()
exact将此选项设置为 搜索与 .这是默认选项。 比较选项 下面。Truepatternregexp
forwards将此选项设置为 从索引向前搜索。这是 默认选项。True
regexp将此选项设置为 将 解释为 Tcl 样式的正则表达式。默认 是查找与 完全匹配的 。Tcl 正则表达式是 Python 正则表达式,支持 这些功能:Truepatternpattern. ^ [c1…] (…) * + ? e1|e2
nocase将此选项设置为 1 可忽略大小写。这 默认值为区分大小写的搜索。
stopindex要限制搜索,请将此选项设置为 索引不应超出该索引 去。

.see(index)

如果包含给定索引的文本不是 可见,滚动文本,直到该文本 可见。

.tag_add(tagNameindex1index2=None)

此方法将命名的标记与 内容的区域从索引之后开始,一直延伸到索引。如果你 省略,只有后面的字符是 标记。tagNameindex1index2index2index1

.tag_bind(tagNamesequencefuncadd=None)

此方法将事件绑定到标记的所有文本 跟。有关更多信息,请参见下文第 54 节 “事件” 有关事件绑定的信息。tagName

若要为标记文本创建新绑定,请使用 前三个参数:标识事件,并且是 您希望它在该事件时调用的函数 发生。sequencefunc

若要向现有标记添加另一个绑定,请传递 前三个参数和第四个参数相同。'+'

找出给定存在哪些绑定 标签上的序列,仅传递前两个 参数;该方法返回关联的 功能。

若要查找给定标记的所有绑定,请仅传递 第一个参数;该方法返回 所有标记的参数。sequence

.tag_cget(tagNameoption)

使用此方法检索给定 的值。optiontagName

.tag_config(tagNameoption, ...)

要更改名为 的标记的选项值,请执行以下操作: 传入一对或多对。tagNameoption=value

如果只传递一个参数,则会返回一个 定义所有选项及其选项的字典 命名标记当前有效的值。

以下是代码配置的选项:

background带有此文本的背景颜色 标记。请注意,不能用作缩写。bg
bgstipple要使背景显示为灰色,请将 此选项为标准位图之一 名称(请参见第 5.7 节 “位图”)。 除非您还指定,否则这不起作用 一个。background
borderwidth带有此文本的边框宽度 标记。默认值为 。注意 您不能用作 缩写。0bd
fgstipple要使文本显示为灰色,请设置此项 选项 A 位图 名称。
font用于显示文本的字体 标记。请参见第 5.4 节 “键入字体”。
foreground用于具有此标记的文本的颜色。 请注意,您不能在此处使用缩写。fg
justify在 每行的第一个字符决定了如何 行是对齐的:( 默认值)、或 。justifytk.LEFTtk.CENTERtk.RIGHT
lmargin1缩进第一行多少 具有此标记的文本块。这 默认值为 。请参见第 5.1 节 “尺寸”了解允许的值。0
lmargin2一个连续行的缩进多少 具有此标记的文本块。这 默认值为 。0
offset提高多少(正值)或 带有此标记的较低(负值)文本 相对于基线。使用它来获取 例如,上标或下标。 有关允许的值,请参见第 5.1 节 “尺寸”。
overstrike设置为绘制 穿过文本中心的水平线 使用此标签。overstrike=1
relief用于具有此标记的文本的三维效果。 默认值为 ; 有关其他可能的值,请参见第 3.5 节 “浮雕样式”。relief=tk.FLAT
rmargin大小 文本块的右边距 此标记。默认值为 。0
spacing1This option specifies how much extra vertical space is put above each line of text with this tag. If a line wraps, this space is added only before the first line it occupies on the display. Default is . 0
spacing2This option specifies how much extra vertical space to add between displayed lines of text with this tag when a logical line wraps. Default is . 0
spacing3This option specifies how much extra vertical space is added below each line of text with this tag. If a line wraps, this space is added only after the last line it occupies on the display. Default is . 0
tabsHow tabs are expanded on lines with this tag. See Section 24.6, “Setting tabs in a Text widget”.
underlineSet to underline text with this tag. underline=1
wrapHow long lines are wrapped in text with this tag. See the description of the option for text widgets, above. wrap

.tag_delete(tagName, ...)

要删除一个或多个标签,请将其名称传递给 此方法。他们的选择和约束消失了, 并且标签将从文本的所有区域中删除。

.tag_lower(tagNamebelowThis=None)

使用此方法更改 标记堆栈(请参见上面的第 24.5 节 “文本小部件标记”, 以获取标记堆栈的说明)。如果您通过 两个参数,带名称的标签是 移动到带有名称的标签正下方的位置。如果只传递一个参数,则该标记为 移至标记堆栈的底部。tagNamebelowThis

.tag_names(index=None)

如果传递索引参数,此方法将返回 所有关联的标记名称的序列 与该索引后面的字符。如果您通过 没有参数,你会得到所有标签的序列 在“文本”微件中定义的名称。

.tag_nextrange(tagNameindex1index2=None)

此方法在给定区域中搜索地点 名为“的标记开始的位置。 搜索的区域从索引开始,结束 在索引 .如果省略参数,搜索将一直到 文本的结尾。tagNameindex1index2index2

如果在给定地区有一个地方 标记启动,方法返回一个序列,其中 是索引 第一个标记字符,并且是索引 紧随最后一个标记之后的位置 字符。[i0, i1]i0i1

如果在区域中未找到标记开始,则 方法返回一个空字符串。

.tag_prevrange(tagNameindex1index2=None)

此方法在给定区域中搜索地点 名为“的标记开始的位置。 搜索的区域在索引之前开始,结束 在索引 .如果省略参数,搜索将一直到 文本的结尾。tagNameindex1index2index2

返回值如 中所示。.tag_nextrange()

.tag_raise(tagNameaboveThis=None)

使用此方法更改 标记堆栈(请参见上面的第 24.5 节 “文本小部件标记”, 以获取标记堆栈的说明)。如果您通过 两个参数,带名称的标签是 移动到带有名称的标签正上方的位置。如果只传递一个参数,则该标记为 移至标记堆栈的顶部。tagNameaboveThis

.tag_ranges(tagName)

此方法查找 标有 name 和 的小部件,以及 返回一个序列,其中每个都是前面的索引 范围的第一个字符,是紧随其后的索引 范围的最后一个字符。tagName[s0e0s1e1, …]siei

.tag_remove(tagNameindex1index2=None)

删除名为 和 之间的所有字符。 如果省略,则从单个中删除标记 后面的字符。tagNameindex1index2index2index1

.tag_unbind(tagNamesequencefuncid=None)

删除给定的事件绑定 名为 的标记。如果 此序列有多个处理程序,并且 标记,则只能通过传递一个处理程序来删除它 作为第三个参数。sequencetagName

.window_cget(indexoption)

返回嵌入的给定选项的值 给定的小部件index.

.window_configure(indexoption)

更改嵌入微件的选项值 在给定的,传入 一对或多对。indexoption=value

如果只传递一个参数,则会返回一个 定义所有选项及其选项的字典 给定小部件当前有效的值。

.window_create(indexoption, ...)

此方法创建一个窗口,其中小部件可以 嵌入在文本微件中。有两种方式 要提供嵌入式小部件,请执行以下操作:

  1. 您可以使用将小部件传递给此方法中的选项,或者window

  2. 您可以定义一个过程,该过程将创建 小部件并将该过程作为回调传递给 选项。create

选项包括:.window_create()

align指定如何定位嵌入的小组件 垂直在其行中,如果它没有 行上的文本。值包括:(默认值),其中 将小部件垂直居中;,其中放置了 行顶部的图像顶部;,其中放置了 行底部的图像底部; 和 ,其中 将图像底部与文本对齐 基线。align=tk.CENTERalign=tk.TOPalign=tk.BOTTOMalign=tk.BASELINE
create将创建嵌入的过程 按需小部件。此过程不需要 参数,并且必须将小部件创建为 文本小部件的子项并返回 小部件作为其结果。
padx添加了额外的空间 小部件的左侧和右侧 文本行。默认值为 。0
pady在上方和下方添加了额外的空间 文本行中的小部件。默认值为 。0
stretch此选项控制在 行高于嵌入的小组件。 通常此选项是 , 这意味着嵌入式小部件保留在 它的自然大小。如果设置 ,则会拉伸小部件 垂直填充线的高度, 选项是 忽视。0stretch=1align
window要嵌入的小组件。此小部件 必须是文本微件的子项。

.window_names()

返回一个序列,其中包含所有 嵌入式小部件。

.xview(tk.MOVETO, fraction)

此方法水平滚动文本小部件, 用于绑定到相关水平滚动条的命令选项。

可以通过两种不同的方式调用此方法。 第一次调用将文本定位在给定的值 by ,其中 0.0 将文本移动到其最左侧 位置和 1.0 到其最右边的位置。fraction

.xview(tk.SCROLL, nwhat)

第二个调用将文本向左或向右移动:参数 指定要移动的数量,可以是 或 ,并告知移动的数量 字符或页面,将文本向右移动 相对于其图像(或左,如果是负数)。whattk.UNITStk.PAGESn

.xview_moveto(fraction)

此方法以与 相同的方式滚动文本。.xview(tk.MOVETO, fraction)

.xview_scroll(nwhat)

与 相同。.xview(tk.SCROLL, nwhat)

.yview(tk.MOVETO, fraction)

相当于 的垂直滚动。.xview(tk.MOVETO,…)

.yview(tk.SCROLL, nwhat)

相当于 的垂直滚动。滚动时 垂直由 ,单位为 线。.xview(tk.SCROLL,…)tk.UNITS

.yview_moveto(fraction)

相当于 的垂直滚动。.xview_moveto()

.yview_scroll(nwhat)

相当于 的垂直滚动。.xview_scroll()

http://www.lryc.cn/news/148750.html

相关文章:

  • 通过「内网穿透」技术,实现出差期间远程访问企业局域网中的象过河ERP系统
  • ChatGPT和大型语言模型(LLM)是什么关系?
  • list(介绍与实现)
  • Centos7 使用docker安装oracle数据库(超详细)
  • 昨天面试的时候被提问到的问题集合(答案)
  • PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像...
  • 详解IP协议
  • Stream流式编程用例
  • 【Pytorch笔记】1. tensor的创建
  • Maven 基础之安装和命令行使用
  • 运动耳机需要具备哪些功能、挂耳式运动蓝牙耳机推荐
  • 【MCU】SD NAND芯片之国产新选择
  • java 多线程
  • ConsoleApplication17_2项目免杀(Fiber+VEH Hook Load)
  • 【Vue3 知识第五讲】条件渲染、列表渲染知识详解
  • vite+vue3从0开始搭建一个后管项目【学习随记二】
  • Linux的内存理解
  • 财务数据分析?奥威BI数据可视化工具很擅长
  • 趣味微项目:玩转Python编程,轻松学习快乐成长!
  • 总结安卓Preference使用过程中注意的问题
  • Laf 中大猫谱:让每一只流浪猫都有家
  • uniapp 使用mqtt 报错 socketTask onOpen is not a function
  • Docker部署RustDesk Server 设置开机自启
  • ESLint如何在vue3项目中配置和使用
  • Frida-hook:微信数据库的破解
  • 【Unity每日一记】WheelColider组件汽车游戏的关键
  • 项目-IM
  • 2023年口腔医疗行业研究报告
  • 1Java:JDK是什么
  • 使用 Amazon Lambda 进行无服务器计算:云架构中的一场革命