12-Tkinter 组件-Text多行文本组件

Text多行文本组件

参数 说明
autoseparators 单词之间的间隔。默认值是1
background bg 设置背景颜色,如bg=‘green’
borderwidth bd 文本控件的边框宽度。默认是1-2个像素。
cursor 文本控件的光标。默认是字符插入光标(一般是一个“I-beam”类型的光标)
exportselection 是否允许拷贝内容到剪贴板
foregroundfg 设置前景(文本)颜色
font 设置字体类型与大小
height 文本控件的高度。默认是24行。
highlightbackground 定义文本控件没有获得输入焦点状态下的高亮背景颜色。就是文本控件的亮边。
highlightcolor 与highlightbackground属性类似。不过是文本控件获得输入焦点时的边框颜色。
highlightthickness 文本控件获得输入焦点时的边框宽度。一般1-2个像素。
insertbackground 设置文本控件插入光标的颜色
insertborderwidth 插入光标的边框宽度。如果是一个非0的数值,光标会使用RAISED效果的边框。
insertofftime insertontime 这两个属性控制插入光标闪烁效果。就是插入光标的出现和消失的时间。单位是毫秒。
insertwidth 设置插入光标的宽度。
maxundo 最大Undo的次数。默认是0。
padx 水平边框的内边距
pady 垂直边框的内边距
relief 指定文本控件的边框3D效果,默认是flat,可以设置的参数;flat、groove、raised、ridge、solid、sunken
selectbackground 设置选中文本的背景颜色
selectborderwidth 设置选中区域边界宽度。
selectforeground 设置选中文本的颜色
setgrid boolean类型。为True时,可以让窗口最大化,并显示整个Text控件
spacing1 上行间距。如果有折行,只在第一行起作用
spacing2 折行之间的行间距
spacing3 下行间距。如果有折行,只在最后一行起作用。
state 定义文本控件的状态。状态有二种:NORMAL和DISABLED
tabs 定义按动Tab键时候的移动距离。
takefocus 定义是否可以使用Tab键移动输入焦点到该控件。
undo 开启undo/redo功能。
width 定义文本控件的宽度,单位是字符个数。
wrap 定义如何折行显示文本控件的内容
xscrollcommand yscrollcommand 将滚动条与文本控件关联起来,处理滚动条动作。滚动条分别对应水平或者垂直滚动条。

参考地址

Text是tkinter类中提供的的一个多行文本区域,显示多行文本,

可用来收集(或显示)用户输入的文字(类似 HTML 中的 textarea),格式化文本显示

允许用不同的样式和属性来显示和编辑文本,同时支持内嵌图象和窗口。

在需要显示编辑用户、产品多行信息时,比如显示用户详细描述文字,产品简介等等,支持随时编辑。

方法

位置表示使用num.num形式,如12.31表示12行第31个字符后。END表示最后,INSERT表示在光标处插入。

方法 功能
delete(起始位置,[,终止位置]) 删除指定区域文本,**
**delete(index1, index2)
删除INDEX1和INDEX2之间的字符 (不包括)
如果在给定范围内有任何 Marks 标记的位置,则将 Marks 移动到 start 参数开始的位置
index1和2 可以是 str float Misc
get(起始位置,[,终止位置]) 获取指定区域文本,
get(index1, index2=None)
返回 index1 到 index2(不包含)之间的文本
如果 index2 参数忽略,则返回一个字符
如果包含 image 和 window 的嵌入对象,均被忽略
如果包含有多行文本,那么自动插入换行符(‘\n’)
insert(位置,[,字符串]…) 将文本插入到指定位置
see(位置) 在指定位置是否可见文本,返回布尔值。同时间光标将会滚动到标记行

可通过mark_set、see、mark_unset实现自动滚动到文本行的方法
scrolledtext.mark_set(“in_progress_mark”, index) # 设置标记
scrolledtext.see(“in_progress_mark”) # 移动光标到标记
scrolledtext.mark_unset(“in_progress_mark”) # 执行完成删除标记
index(标记) 返回标记所在的行和列
mark_names() 返回所有标记名称
mark_set(标记名,位置) 在指定位置设置标记,标记名为字符串
mark_unset(标记) 去除标记
tag_add(tagName, index1, index2=None) 为 index1 到 index2 之间的内容添加一个 Tag(tagName 参数指定)
如果 index2 参数忽略,则单独为 index1 指定的内容添加 Tag
详见上方【Tags 用法】
tag_bind(tagName, sequence, func, add=None) -为 Tag 绑定事件
tag_configure(tagName, cnf=None, **kw) 设置 tagName 的选项
dit_undo() 撤销最近一次操作, 如果 undo 选项为 False,该方法无效
edit_redo() “恢复”上一次的“撤销”操作, 如果 undo 选项为 False,该方法无效
详见上方用法【“撤销”和“恢复”操作】
tag_delete(*tagNames) 删除 tagNames 指定的 Tags
image_create(index, cnf={}, **kw) 在 index 参数指定的位置嵌入一个 image 对象
该 image 对象必须是 Tkinter 的 PhotoImage 或 BitmapImage 实例
可选选项 align:设定此图像的垂直对齐,可以是 “top”、“center”、“bottom” 或 “baseline”
可选选项 image:PhotoImage 或 BitmapImage 对象
可选选项 name:你可以为该图像实例命名,如果你忽略此选项,那么 Tkinter 会自动为其取一个独一无二的名字。
可选选项 padx:设置水平方向上的额外间距
可选选项 pady:设置垂直方向上的额外间距

tag_config参数:

选项 描述
background 指定该 Tag 所描述的内容的背景颜色 注意:bg 并不是该选项的缩写,在这里 bg 被解释为 bgstipple 选项的缩写
bgstipple 指定一个位图作为背景,并使用 background 选项指定的颜色填充 只有设置了 background 选项该选项才会生效 默认的标准位图有:‘error’, ‘gray75’, ‘gray50’, ‘gray25’, ‘gray12’, ‘hourglass’, ‘info’, ‘questhead’, ‘question’ 和 ‘warning’
borderwidth 指定文本框的宽度
fgstipple 指定一个位图作为前景色 默认的标准位图有:‘error’, ‘gray75’, ‘gray50’, ‘gray25’, ‘gray12’, ‘hourglass’, ‘info’, ‘questhead’, ‘question’ 和 ‘warning’
font 指定该 Tag 所描述的内容使用的字体
foreground 指定该 Tag 所描述的内容的前景色 注意:fg 并不是该选项的缩写,在这里 fg 被解释为 fgstipple 选项的缩写
justify 控制文本的对齐方式 默认是 “left”(左对齐),还可以选择 “right”(右对齐)和 “center”(居中)
lmargin1 设置 Tag 指向的文本块第一行的缩进
lmargin2 设置 Tag 指向的文本块除了第一行其他行的缩进
offset 设置 Tag 指向的文本相对于基线的偏移距离 可以控制文本相对于基线是升高(正数值)或者降低(负数值) 默认值是 0
overstrike 在 Tag 指定的文本范围画一条删除线
underline 该选项设置为 True 的话,则 Tag 所描述的范围内文本将被画上下划线
wrap 设置当一行文本的长度超过 width 选项设置的宽度时,是否自动换行 该选项的值可以是:“none”(不自动换行),“char”(默认)(按字符自动换行)和 “word”(按单词自动换行)

例子

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tkinter as tk  # 使用Tkinter前需要先导入

# 第1步,实例化object,建立窗口window
window = tk.Tk()

# 第2步,给窗口的可视化起名字
window.title('My Window')

# 第3步,设定窗口的大小(长 * 宽)
window.geometry('500x300')  # 这里的乘是小x

# 第4步,在图形界面上设定输入框控件entry框并放置
e = tk.Entry(window)  # 显示成明文形式
e.pack()


# 第5步,定义两个触发事件时的函数insert_point和insert_end(注意:因为Python的执行顺序是从上往下,所以函数一定要放在按钮的上面)
def insert_point():  # 在鼠标焦点处插入输入内容
    var = e.get()
    t.insert('insert', var)


def insert_end():  # 在文本框内容最后接着插入输入内容
    var = e.get()
    t.insert('end', var)


# 第6步,创建并放置两个按钮分别触发两种情况
b1 = tk.Button(window, text='insert point', width=10, height=2, command=insert_point)
b1.pack()
b2 = tk.Button(window, text='insert end', width=10, height=2, command=insert_end)
b2.pack()

# 第7步,创建并放置一个多行文本框text用以显示,指定height=3为文本框是三个字符高度
t = tk.Text(window, height=3)
t.pack()

# 第8步,主窗口循环显示
window.mainloop()

你可能感兴趣的:(#,tkinter,开发语言,python,音视频,媒体,前端)