Python 3 - 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
    插入光标周围的 3-D 边框的大小。默认为 0。
    13
    insertofftime
    插入光标在其闪烁周期内关闭的毫秒数。将此选项设置为零以抑制闪烁。默认值为 300。
    14
    insertontime
    插入光标在其闪烁周期中处于打开状态的毫秒数。默认值为 600。
    15
    insertwidth
    插入光标的宽度(其高度由其行中最高的项目决定)。默认值为 2 像素。
    16
    padx
    添加到文本区域左侧和右侧的内部填充的大小。默认为一个像素。
    17
    pady
    在文本区域上方和下方添加的内部填充的大小。默认为一个像素。
    18
    relief
    文本小部件的 3-D 外观。默认为 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
    您可以使用此方法配置标签属性,包括对齐(居中、左或右)、选项卡(此属性与文本小部件选项卡的属性具有相同的功能)和下划线(用于为标记文本添加下划线) .
    3
    tag_delete(tagname)
    此方法用于删除和移除给定标签。
    4
    tag_remove(tagname [,startindex[.endindex]] ...)
    应用此方法后,给定的标签将从提供的区域中删除,而不删除实际的标签定义。
  • 例子

    自己尝试以下示例 -
    
    # !/usr/bin/python3
    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()
    
  • 结果

    执行上述代码时,会产生以下结果 -
    传统知识文本