当前位置: 首页 > 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()

相关文章:

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

24. 小部件Text 文本小部件是一种更通用的方法 处理比小部件多行文本。文本小部件几乎是一个完整的文本 窗口中的编辑器&#xff1a;Label 您可以将文本与不同的字体、颜色和 背景。 您可以用文本穿插嵌入的图像。一 图像被视为单个字符。请参见第 24.3 节 “文本小部件图像”…...

通过「内网穿透」技术,实现出差期间远程访问企业局域网中的象过河ERP系统

文章目录 概述1.查看象过河服务端端口2.内网穿透3. 异地公网连接4. 固定公网地址4.1 保留一个固定TCP地址4.2 配置固定TCP地址 5. 使用固定地址连接 概述 ERP系统对于企业来说重要性不言而喻&#xff0c;不管是财务、生产、销售还是采购&#xff0c;都需要用到ERP系统来协助。…...

ChatGPT和大型语言模型(LLM)是什么关系?

参考&#xff1a;https://zhuanlan.zhihu.com/p/615203178 # ChatGPT和大型语言模型(LLM)是什么关系&#xff1f; 参考&#xff1a;https://zhuanlan.zhihu.com/p/622518771 # 什么是LLM大语言模型&#xff1f;Large Language Model&#xff0c;从量变到质变 https://zhuanla…...

list(介绍与实现)

目录 1. list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2 list iterator的使用 1.2.3 list capacity 1.2.4 list element access 1.2.5 list modififiers 1.2.6 list的迭代器失效 2. list的模拟实现 2.1 模拟实现list 2.2 list的反向迭代器 1.…...

Centos7 使用docker安装oracle数据库(超详细)

在linux中采用解压安装包的方式安装oracle非常麻烦&#xff0c;并且稍微不注意就会出现问题&#xff0c;因此采用docker来安装&#xff0c;下面为详细的步骤&#xff1a; 若不知道是否安装docker可查看这篇文章&#xff1a;docker安装 1、拉取oracle镜像 docker pull registr…...

昨天面试的时候被提问到的问题集合(答案)

1、vue的双向绑定原理是什么&#xff1f;里面的关键点在哪里&#xff1f; Vue的双向绑定原理是基于Object.defineProperty或者Proxy来实现的&#xff0c;其关键点在于数据劫持&#xff0c;即对数据的读取和修改进行拦截&#xff0c;在数据发生变化时自动更新视图 2、实现水平垂…...

PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像...

原文链接&#xff1a;http://tecdat.cn/?p24346 在今天产品高度同质化的品牌营销阶段&#xff0c;企业与企业之间的竞争集中地体现在对客户的争夺上&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 “用户就是上帝”促使众多的企业不惜代价去争夺尽可能多的客…...

详解IP协议

在介绍IP协议之前&#xff0c;先抛出一个概念&#xff1a;IP地址的作用——定位主机&#xff0c;具有将数据从主机A跨网络传输到主机B的能力&#xff0c;有了TCP提供的策略&#xff0c;例如滑动窗口、拥塞控制等&#xff0c;IP去执行它&#xff0c;所以我们通常叫TCP/IP协议&am…...

Stream流式编程用例

Stream流式编程用例&#xff1a; filter, map, flatmap, limit, skip, sort, distinct, collect, reduce, summary statistics public class StreamTest {public static void main(String[] args) {//filterStream<Integer> stream Stream.of(1, 2, 3, 4, 5);Stream&l…...

【Pytorch笔记】1. tensor的创建

参考视频&#xff1a; 深度之眼官方账号&#xff1a;01-02-张量简介与创建 torch.tensor() b torch.tensor(data, dtypeNone, deviceNone, requires_gradFalse, pin_memoryFalse)data&#xff1a;创建的tensor的数据来源&#xff0c;可以是list或numpy dtype&#xff1a;数据…...

Maven 基础之安装和命令行使用

Maven 的安装和命令行使用 1. 下载安装 下载解压 maven 压缩包&#xff08;http://maven.apache.org/&#xff09; 配置环境变量 前提&#xff1a;需要安装 java 。 在命令行执行如下命令&#xff1a; mvn --version如出现类似如下结果&#xff0c;则证明 maven 安装正确…...

运动耳机需要具备哪些功能、挂耳式运动蓝牙耳机推荐

作为运动爱好者&#xff0c;长时间的运动很容易枯燥&#xff0c;所以我会选择佩戴耳机来缓解运动的枯燥感&#xff0c;一款好的运动耳机可以让运动变得更加激情&#xff0c;还可以更好的享受运动的乐趣。 但现在的运动耳机产品实在是五花八门&#xff0c;到底什么样的运动蓝牙耳…...

【MCU】SD NAND芯片之国产新选择

文章目录 前言传统SD卡和可贴片SD卡传统SD卡可贴片SD卡 实际使用总结 前言 随着目前时代的快速发展&#xff0c;即使是使用MCU的项目上也经常有大数据存储的需求。可以看到经常有小伙伴这样提问&#xff1a; 大家好&#xff0c;请问有没有SD卡芯片&#xff0c;可以直接焊接到P…...

java 多线程

01.多线程类java.lang.Thread 这里继承Thread类的方法是比较常用的一种&#xff0c;如果说你只是想起一条线程。没有什么其它特殊的要求&#xff0c;那么可以使用Thread.&#xff08;笔者推荐使用Runable&#xff0c;后头会说明为什么&#xff09;。下面来看一个简单的实例&…...

ConsoleApplication17_2项目免杀(Fiber+VEH Hook Load)

加载方式FiberVEH Hook Load Fiber是纤程免杀&#xff0c;VEH是异常报错&#xff0c;hook使用detours来hook VirtualAlloc和sleep&#xff0c;通过异常报错调用实现主动hook 纤程Fiber的概念&#xff1a;纤程是比线程的更小的一个运行单位。可以把一个线程拆分成多个纤程&#…...

【Vue3 知识第五讲】条件渲染、列表渲染知识详解

文章目录 一、条件渲染1.1 概述1.2 演示代码 二、列表渲染2.1 使用 指令 v-for 遍历数组2.2 **使用 指令 v-for 遍历对象** 十、案例作业十一、总结 在前端开发过程中&#xff0c;条件和循环是经常被用到的逻辑。vue中封装了自己的组件渲染指令&#xff0c;可以更加方便的帮助开…...

vite+vue3从0开始搭建一个后管项目【学习随记二】

创建项目安装插件可以去【学习随记一】看下 1.路由配置 **文件路径是router/index.ts** import { createRouter, createWebHistory } from vue-router import { UserStore, userMenu } from /pinia import routes from ./routes import MainRouter from ./MainRouterconst ro…...

Linux的内存理解

建议 Mysql机器 尽量不要硬swap,如果是ssd磁盘还好。Free命令 free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存 输出简介: Mem 行(第二行)是内存的使用情况。Swap 行(第三行)是交换空间的使用情况。total 列显示系统总的可用物理内存和交换…...

财务数据分析?奥威BI数据可视化工具很擅长

BI数据可视化工具通常是可以用户各行各业&#xff0c;用于不同主题的数据可视化分析&#xff0c;但面对财务数据分析这块难啃的骨头&#xff0c;能够好好地完成的&#xff0c;还真不多。接下来要介绍的这款BI数据可视化工具不仅拥有内存行列计算模型这样的智能财务指标计算功能…...

趣味微项目:玩转Python编程,轻松学习快乐成长!

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 在学习Python编程的旅程…...

总结安卓Preference使用过程中注意的问题

近期在做新项目中接触到了Preference&#xff0c;这是一种用户界面元素&#xff0c;用于存储和展示应用程序的各种设置和用户偏好。该控件几年前google就已经发布了只是一直没机会应用&#xff0c;其实用起来还是挺方便的&#xff0c;使用过程中遇到了几个问题在此记录下。 1、…...

Laf 中大猫谱:让每一只流浪猫都有家

猫谱简介 中大猫谱是一款辅助校园流浪猫救助的开源小程序项目&#xff0c;服务端使用 Laf 云开发。 猫谱主要功能包括&#xff1a;猫咪信息登记、照片分享、拍照识猫、公告和留言等。项目创立的初衷&#xff0c;是解决校园猫猫交流群里的一个常见问题&#xff1a;问猫猫是谁。…...

uniapp 使用mqtt 报错 socketTask onOpen is not a function

1. 报错的解决方法 在man.js文件添加这个 // #ifndef MP // 处理 wx.connectSocket promisify 兼容问题&#xff0c;强制返回 SocketTask uni.connectSocket (function(connectSocket) {return function(options) {console.log(options)options.success options.success ||…...

Docker部署RustDesk Server 设置开机自启

三、Docker安装 Docker官方和国内daocloud都提供了一键安装的脚本&#xff0c;使得Docker的安装更加便捷。 官方的一键安装方式&#xff1a; curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 国内 daocloud一键安装命令&#xff1a; curl -sSL https://…...

ESLint如何在vue3项目中配置和使用

目录 问题描述&#xff1a; 配置&#xff1a; 注意&#xff1a; 问题描述&#xff1a; 在用vite创建vue3项目时已经选择了添加ESLint&#xff0c;创建完成后使用 pnpm install命令&#xff08;或者npm i&#xff09;安装了项目依赖之后&#xff0c;ESLint在项目中需要怎样配…...

Frida-hook:微信数据库的破解

Frida-hook:微信数据库的破解 Frida-hook:微信数据库的破解1. 准备条件2. 用frida获取key2.1 静态分析微信apk文件2.2 frida hook&#xff1a; 3. 用sqlcipher打开数据库&#xff1a; Frida-hook:微信数据库的破解 我们可以从root过的手机中&#xff0c;找到微信相关数据库&am…...

【Unity每日一记】WheelColider组件汽车游戏的关键

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…...

项目-IM

tim-server tim-server启动类实现CommandLineRunner接口&#xff0c;重写run()方法 run()方法开启一个线程&#xff0c;创建zk持久父节点&#xff0c;创建临时顺序子节点&#xff0c;将netty-server信息写入 1.1 用户登录 1.2 gateway向认证授权中心请求token 1.3 从zookee…...

2023年口腔医疗行业研究报告

第一章 行业概况 1.1 定义 口腔医疗行业是以口腔医疗服务消费为基础&#xff0c;包含医疗及消费双重属性&#xff0c;是 为满足口腔及颌面部疾病的预防和诊疗、口腔美容等需求提供相关医疗服务的行业。 该行业的主要参与者包括口腔保健专业人员&#xff08;如牙医、口腔外科…...

1Java:JDK是什么

1Java是介于编译型语言和解释型语言之间 编译型语言&#xff1a;c c先编译成机器码&#xff0c;再执行 解释型语言&#xff1a;pytn 解释器直接加载源码运行&#xff0c;但是运行效果低 Java是将代码编译成一张字节码,优点 针对不同平台编写虚拟机&#xff0c;不同平台的虚拟…...