我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【Python】【进阶篇】六、Tkinter的Text文本框控件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【Python】【进阶篇】六、Tkinter的Text文本框控件

六、Tkinter的Text文本框控件

Text 文本控件是 Tkinter 中经常使用的控件,与 Entry 控件相比,Text 控件用于显示和编辑多行文本,而 Entry 控件则适合处理单行文本。

Text 文本控件的常用属性

名称说明
autoseparators默认为 True,表示执行撤销操作时是否自动插入一个“分隔符”(其作用是用于分隔操作记录)
exportselection默认值为 True,表示被选中的文本是否可以被复制到剪切板,若是 False 则表示不允许。
insertbackground设置插入光标的颜色,默认为 BLACK
insertborderwidth设置插入光标的边框宽度,默认值为 0
insertofftime该选项控制光标的闪烁频频率(灭的状态)
insertontime该选项控制光标的闪烁频频率(亮的状态)
selectbackground指定被选中文本的背景颜色,默认由系统决定
selectborderwidth指定被选中文本的背景颜色,默认值是0
selectforeground指定被选中文本的字体颜色,默认值由系统指定
setgrid默认值是 False,指定一个布尔类型的值,确定是否启用网格控制
spacing1指定 Text 控件文本块中每一行与上方的空白间隔,注意忽略自动换行,且默认值为 0。
spacing2指定 Text 控件文本块中自动换行的各行间的空白间隔,忽略换行符,默认值为0
spacing3指定 Text 组件文本中每一行与下方的空白间隔,忽略自动换行,默认值是 0
tabs定制 Tag 所描述的文本块中 Tab 按键的功能,默认被定义为 8 个字符宽度,比如 tabs=(‘1c’, ‘2c’, ‘8c’) 表示前 3 个 Tab 宽度分别为 1厘米,2厘米,8厘米。
undo该参数默认为 False,表示关闭 Text 控件的“撤销”功能,若为 True 则表示开启
wrap该参数用来设置当一行文本的长度超过 width 选项设置的宽度时,是否自动换行,参数值 none(不自动换行)、char(按字符自动换行)、word(按单词自动换行)
xscrollcommand该参数与 Scrollbar 相关联,表示沿水平方向上下滑动
yscrollcommand该参数与 Scrollbar 相关联,表示沿垂直方向左右滑动

Text 文本控件的常用方法

名称说明
bbox(index)返回指定索引的字符的边界框,返回值是一个 4 元组,格式为(x,y,width,height)
edit_modified()该方法用于查询和设置 modified 标志(该标标志用于追踪 Text 组件的内容是否发生变化)
edit_redo()“恢复”上一次的“撤销”操作,如果设置 undo 选项为 False,则该方法无效。
edit_separator()插入一个“分隔符”到存放操作记录的栈中,用于表示已经完成一次完整的操作,如果设置 undo 选项为 False,则该方法无效。
get(index1, index2)返回特定位置的字符,或者一个范围内的文字。
image_cget(index, option)返回 index 参数指定的嵌入 image 对象的 option 选项的值,如果给定的位置没有嵌入 image 对象,则抛出 TclError 异常
image_create()在 index 参数指定的位置嵌入一个 image 对象,该 image 对象必须是 Tkinter 的 PhotoImage 或 BitmapImage 实例。
insert(index, text)在 index 参数指定的位置插入字符串,第一个参数也可以设置为 INSERT,表示在光标处插入,END 表示在末尾处插入。
delete(startindex [, endindex])删除特定位置的字符,或者一个范围内的文字。
see(index)如果指定索引位置的文字是可见的,则返回 True,否则返回 False。

下面演示Text 文本控件的属性和方法,代码如下

from tkinter import Tk, Text, INSERTwin = Tk()win.title("Python自学")win.iconbitmap("./python.png")win.geometry('480x270')# 创建一个文本控件# width 一行可见的字符数;height 显示的行数text = Text(win, width=55, height=35, undo=True, autoseparators=False)# 适用 pack(fill=X) 可以设置文本域的填充模式。比如 X表示沿水平方向填充,Y表示沿垂直方向填充,BOTH表示沿水平、垂直方向填充text.pack()# INSERT 光标处插入;END 末尾处插入text.insert(INSERT, 'Python自学网,一个有温度的网站')win.mainloop()

给上面代码增加简单的功能撤销和恢复功能,代码如下 -

from tkinter import Tk, Text, INSERT, Buttonwin = Tk()win.title("Python自学")win.iconbitmap("./python.png")win.geometry('480x270')# 创建一个文本控件# width 一行可见的字符数;height 显示的行数text = Text(win, width=45, height=15, undo=True, autoseparators=False)# 适用 pack(fill=X) 可以设置文本域的填充模式。比如 X表示沿水平方向填充,Y表示沿垂直方向填充,BOTH表示沿水平、垂直方向填充text.grid(padx=5, pady=5)# INSERT 光标处插入;END 末尾处插入text.insert(INSERT, 'Python自学网,一个有温度的网站')# 定义撤销和恢复方法,调用edit_undo()和 edit_redo()方法def backout():    text.edit_undo()def regain():    text.edit_redo()# 定义撤销和恢复按钮Button(win, text='撤销', width=10, command=backout).grid(row=3, column=0, sticky="w", padx=5, pady=5)Button(win, text='恢复', width=10, command=regain).grid(row=3, column=0, sticky="e", padx=5, pady=5)win.mainloop()win.mainloop()

文本控件(Text)支持三种类型的特殊结构,即 Mark、Tag 以及 Index。

名称说明
INSERT对应插入光标的位置
CURRENT对应与鼠标坐标最接近的位置
END对应 Text 控件的文本域中最后一个字符的下一个位置
line.column表示某一行某一列的一个位置,比如 1.2 表示第一行第二列的一个位置
line.end表示某一行到末尾的最后一个位置
SEL一种针对于 Tag 的特殊索引用法,(SEL_FIRST,SEL_LAST) 表示当前被选中的范围
tag_add(tagName,index1,index2)为指定索引范围内的内容添加一个标签名字,如果 index2 不存在,则单独为 Index1 指定的内容添加 Tag
tag_bind(tagName, sequence, func, add=None)为 Tag 绑定事件,解除绑定使用 tag_unbind() 方法
tag_cget(tagName,option)返回 tagName 指定的 option 选项的值
tag_configure(tagName, cnf=None, **kw)设置 tagName 的选项
tag_delete(tagNames)删除单个或者多个 tagNames 指定的标签
tag_lower(tagName, belowThis=None)降低 Tag 的优先级,如果 belowThis 参数不为空,则表示 tagName 需要比 belowThis 指定的 Tag 优先级更低
tag_names(index=None)如果不带参数,表示返回 Text 组件中所有 Tags 的名字,若存在 index 参数则返回该位置上所有 Tags 的名字
tag_nextrange(tagName, index1, index2=None)在 index1 到 index2 的范围内第一个 tagName 的位置,若不存在则返回空字符串。
tag_raise(tagName, aboveThis=None)提高 Tag 的优先级,如果 aboveThis 参数不为空,则表示 tagName 需要比 aboveThis 指定的 Tag 优先级更高
tag_ranges(tagName)返回所有 tagName 指定的文本,并将它们的范围以列表的形式返回
tag_remove(tagName, index1, index2=None)删除 index1 到 index2 之间所有的 tagName,如果忽略 index2 参数,那么只删除 index1 指定字符的 tagName
mark_gravity(markName, direction=None)设置 Mark 的移动方向,默认是 “right”,也可以设置为 “left” ,表示即如果在 Mark 处插入文本的话,Mark 的标记移动方向,也就是文本的插入方向。
mark_names()返回 Text 组件中所有 Marks 的名字
mark_next(index)返回在 index 指定的位置后边的一个 Mark 的名字
mark_previous(index)返回在 index 指定的位置前边的一个 Mark 的名字
mark_set(markName, index)移动 Mark 到 index 参数指定的位置,如果 markName 参数指定的 Mark 不存在,则创建一个新的 Mark
mark_unset(MarkName)删除指定的 Mark

来源地址:https://blog.csdn.net/NQBXHN/article/details/129431628

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【Python】【进阶篇】六、Tkinter的Text文本框控件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录