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

这篇具有很好参考价值的文章主要介绍了【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, INSERT

win = 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, Button

win = 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。文章来源地址https://www.toymoban.com/news/detail-435556.html

名称 说明
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

到了这里,关于【Python】【进阶篇】六、Tkinter的Text文本框控件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python tkinter Entry控件textchange事件

    项目上需要用到一个功能,当Entry控件中的文本发生变化时触发textchange事件,获得变化后的文本内容,找了半天后发现Entry控件没有自带的textchange事件。替代方案是:给Entry控件绑定Key事件,当任意敲击键盘时触发,相当于间接实现了textchange事件,但实际使用过程发现绑定

    2024年02月04日
    浏览(61)
  • Python tkinter 初探Toplevel控件搭建父子窗口

    目录 Toplevel控件搭建父子窗口 最简明的父子窗口框架 改进一:屏蔽和开放按钮 改进二:子窗口始终在主窗口之上 改进三:增加子窗口的关闭协议 改进四:使子窗口长获焦点 总结 最近,用Python给单位里用的“智慧食堂”系统编制了一个餐卡充值文件生成器,自动匹配餐卡号

    2024年02月04日
    浏览(37)
  • Python tkinter控件全集之组合选择框 ttk.ComboBox

    Tkinter是Python的标准GUI库,也是最常用的Python GUI库之一,提供了丰富的组件和功能,包括窗口、按钮、标签、文本框、列表框、滚动条、画布、菜单等,方便开发者进行图形界面的开发。Tkinter库基于Tk for Unix/Windows/macOS,由Tcl语言编写。使用Tkinter,可以快速创建桌面应用程序

    2024年02月04日
    浏览(41)
  • Python进阶知识(2)—— 什么是GUI编程?一起来学习用Python,Tkinter“做画”吧

    All things are difficult before they are easy. 凡事必先难后易。 GUI是Graphical User Interface(图形用户界面)的缩写 。它是指通过图形化的方式,为人们提供更加友好、直观的用户界面,使得用户可以通过鼠标和键盘等外设更加轻松、快捷地操作计算机。在GUI界面中,计算机会呈现出各种

    2024年02月05日
    浏览(42)
  • 使用文本编辑器sublime text编写python代码

    上篇文章介绍了如何安装python程序,这次就讲讲如何用sublime来编写python代码 有的小伙伴可能会有疑问,为什么不选择pycharm来编写? pycharm写代码会有代码补全功能,而我们新手正是要在犯错误的过程中积累经验,所以呢在前期我们新手最好是使用sublime、notepad、vscode这类的文

    2024年02月11日
    浏览(65)
  • Python GUI设计——Entry文本框、文字区域Text

    目录 1.Entry 1.1基本概念 1.2使用show参数隐藏输入的字符 1.3Entry的get()方法 1.4Entry的insert()方法 1.5Entry的delete()方法 1.6计算数学表达式使用eval() 2.文字区域Text 2.1基本概念 2.2插入文字insert() 2.3Text加上滚动条Scrollbar设计 2.4字形 2.4.1family 2.4.2weight 2.4.3size 2.5选取文字 2.6Text的索引 2.

    2024年01月18日
    浏览(43)
  • 第五篇【传奇开心果系列】Python文本和语音相互转换库技术点案例示例:详细解读pyttsx3的`preprocess_text`函数文本预处理。

    pyttsx3在文本转换语音之前,首先要开展系列步骤的文本预处理工作。 这些预处理步骤可以在使用 pyttsx3 之前应用于文本,以提高转换结果的质量和可读性。预处理后的文本更干净、准确,可以更好地用于语音转换。pyttsx3主要使用 preprocess_text 函数开展文本预处理。 下面是一

    2024年02月22日
    浏览(50)
  • 【Python】【进阶篇】十、Pygame的Font文本和字体

    Pygame 通过 pygame.font 模块来创建一个字体对象,从而实现绘制文本的目的。 该模块的常用方法如下所示: 名称 说明 pygame.font.init() 初始化字体模块 pygame.font.quit()  取消初始化字体模块 pygame.font.get_init()  检查字体模块是否被初始化,返回一个布尔值。 pygame.font.get_default_font

    2024年02月07日
    浏览(37)
  • tkinter模块高级操作(一)—— 透明按钮、透明文本框、自定义按钮及自定义文本框

    —— 众所周知,tkinter模块中自带的Button类是无法做到使其透明的(至少我无法做到) 【tip:透明是指让背景颜色或图片穿过按钮而显示出来】 —— 找遍了Button类的所有参数和操作,都无法解决这个问题! —— 但!真的就没有办法做出一个透明的按钮吗? —— 如果你认为

    2024年02月09日
    浏览(37)
  • [UI5 常用控件] 01.Text

    Text是UI5中最常用的控件之一。 记录Text常用的功能。 控件路径是sap.m.Text Controller View 普通绑定: 别名绑定: binding绑定: 别名binding绑定: bindText bindText with alias bindProperty bindElement setText getText

    2024年01月24日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包