- Python 基础
- Python - 首页
- Python - 概览
- Python - 历史
- Python - 特性
- Python vs C++
- Python - Hello World 程序
- Python - 应用领域
- Python - 解释器
- Python - 环境搭建
- Python - 虚拟环境
- Python - 基本语法
- Python - 变量
- Python - 数据类型
- Python - 类型转换
- Python - Unicode 系统
- Python - 字面量
- Python - 运算符
- Python - 算术运算符
- Python - 比较运算符
- Python - 赋值运算符
- Python - 逻辑运算符
- Python - 位运算符
- Python - 成员运算符
- Python - 身份运算符
- Python - 运算符优先级
- Python - 注释
- Python - 用户输入
- Python - 数字
- Python - 布尔值
- Python 控制语句
- Python - 控制流
- Python - 决策
- Python - If 语句
- Python - If else
- Python - 嵌套 If
- Python - Match-Case 语句
- Python - 循环
- Python - for 循环
- Python - for-else 循环
- Python - While 循环
- Python - break 语句
- Python - continue 语句
- Python - pass 语句
- Python - 嵌套循环
- Python 函数 & 模块
- Python - 函数
- Python - 默认参数
- Python - 关键字参数
- Python - 仅限关键字参数
- Python - 位置参数
- Python - 仅限位置参数
- Python - 可变参数
- Python - 变量作用域
- Python - 函数注解
- Python - 模块
- Python - 内置函数
- Python 字符串
- Python - 字符串
- Python - 字符串切片
- Python - 修改字符串
- Python - 字符串连接
- Python - 字符串格式化
- Python - 转义字符
- Python - 字符串方法
- Python - 字符串练习
- Python 列表
- Python - 列表
- Python - 访问列表元素
- Python - 修改列表元素
- Python - 添加列表元素
- Python - 删除列表元素
- Python - 循环遍历列表
- Python - 列表推导式
- Python - 排序列表
- Python - 复制列表
- Python - 合并列表
- Python - 列表方法
- Python - 列表练习
- Python 元组
- Python - 元组
- Python - 访问元组元素
- Python - 更新元组
- Python - 解包元组
- Python - 循环遍历元组
- Python - 合并元组
- Python - 元组方法
- Python - 元组练习
- Python 集合
- Python - 集合
- Python - 访问集合元素
- Python - 添加集合元素
- Python - 删除集合元素
- Python - 循环遍历集合
- Python - 合并集合
- Python - 复制集合
- Python - 集合运算符
- Python - 集合方法
- Python - 集合练习
- Python 字典
- Python - 字典
- Python - 访问字典元素
- Python - 修改字典元素
- Python - 添加字典元素
- Python - 删除字典元素
- Python - 字典视图对象
- Python - 循环遍历字典
- Python - 复制字典
- Python - 嵌套字典
- Python - 字典方法
- Python - 字典练习
- Python 数组
- Python - 数组
- Python - 访问数组元素
- Python - 添加数组元素
- Python - 删除数组元素
- Python - 循环遍历数组
- Python - 复制数组
- Python - 反转数组
- Python - 排序数组
- Python - 合并数组
- Python - 数组方法
- Python - 数组练习
- Python 文件处理
- Python - 文件处理
- Python - 写入文件
- Python - 读取文件
- Python - 重命名和删除文件
- Python - 目录
- Python - 文件方法
- Python - OS 文件/目录方法
- Python - OS 路径方法
- 面向对象编程
- Python - OOPs 概念
- Python - 类 & 对象
- Python - 类属性
- Python - 类方法
- Python - 静态方法
- Python - 构造函数
- Python - 访问修饰符
- Python - 继承
- Python - 多态
- Python - 方法重写
- Python - 方法重载
- Python - 动态绑定
- Python - 动态类型
- Python - 抽象
- Python - 封装
- Python - 接口
- Python - 包
- Python - 内部类
- Python - 匿名类和对象
- Python - 单例类
- Python - 包装类
- Python - 枚举
- Python - 反射
- Python 错误 & 异常
- Python - 语法错误
- Python - 异常
- Python - try-except 块
- Python - try-finally 块
- Python - 抛出异常
- Python - 异常链
- Python - 嵌套 try 块
- Python - 用户自定义异常
- Python - 日志记录
- Python - 断言
- Python - 内置异常
- Python 多线程
- Python - 多线程
- Python - 线程生命周期
- Python - 创建线程
- Python - 启动线程
- Python - 线程连接
- Python - 线程命名
- Python - 线程调度
- Python - 线程池
- Python - 主线程
- Python - 线程优先级
- Python - 守护线程
- Python - 线程同步
- Python 同步
- Python - 线程间通信
- Python - 线程死锁
- Python - 中断线程
- Python 网络编程
- Python - 网络编程
- Python - 套接字编程
- Python - URL 处理
- Python - 泛型
- Python 库
- NumPy 教程
- Pandas 教程
- SciPy 教程
- Matplotlib 教程
- Django 教程
- OpenCV 教程
- Python 其他
- Python - 日期 & 时间
- Python - 数学
- Python - 迭代器
- Python - 生成器
- Python - 闭包
- Python - 装饰器
- Python - 递归
- Python - 正则表达式
- Python - PIP
- Python - 数据库访问
- Python - 弱引用
- Python - 序列化
- Python - 模板
- Python - 输出格式化
- Python - 性能测量
- Python - 数据压缩
- Python - CGI 编程
- Python - XML 处理
- Python - GUI 编程
- Python - 命令行参数
- Python - 文档字符串
- Python - JSON
- Python - 发送邮件
- Python - 扩展
- Python - 工具/实用程序
- Python - 图形用户界面
- Python 高级概念
- Python - 抽象基类
- Python - 自定义异常
- Python - 高阶函数
- Python - 对象内部
- Python - 内存管理
- Python - 元类
- Python - 使用元类进行元编程
- Python - 模拟和存根
- Python - 猴子补丁
- Python - 信号处理
- Python - 类型提示
- Python - 自动化教程
- Python - Humanize 包
- Python - 上下文管理器
- Python - 协程
- Python - 描述符
- Python - 诊断和修复内存泄漏
- Python - 不可变数据结构
- Python 有用资源
- Python - 问答
- Python - 在线测验
- Python - 快速指南
- Python - 参考
- Python - 速查表
- Python - 项目
- Python - 有用资源
- Python - 讨论
- Python 编译器
- NumPy 编译器
- Matplotlib 编译器
- SciPy 编译器
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 | 插入背景颜色 插入光标的颜色。默认为黑色。 |
12 | 插入光标边框宽度 插入光标周围 3D 边框的大小。默认为 0。 |
13 | 插入光标关闭时间 插入光标在闪烁周期中关闭的毫秒数。将此选项设置为零可抑制闪烁。默认为 300。 |
14 | 插入光标开启时间 插入光标在闪烁周期中开启的毫秒数。默认为 600。 |
15 | 插入光标宽度 插入光标的宽度(其高度由其所在行中最高的项目决定)。默认为 2 像素。 |
16 | 水平内边距 添加到文本区域左右两侧的内部填充大小。默认为 1 个像素。 |
17 | 垂直内边距 添加到文本区域上下两侧的内部填充大小。默认为 1 个像素。 |
18 | 浮雕样式 文本部件的 3D 外观。默认为 relief=SUNKEN。 |
19 | 选中文本背景颜色 显示选中文本时使用的背景颜色。 |
20 | 选中文本边框宽度 选中文本周围使用的边框宽度。 |
21 | 行间距1 此选项指定在每行文本上方添加多少额外垂直空间。如果一行换行,则此空间仅在显示器上占据的第一行之前添加。默认为 0。 |
22 | 行间距2 此选项指定当逻辑行换行时,在显示文本行之间添加多少额外垂直空间。默认为 0。 |
23 | 行间距3 此选项指定在每行文本下方添加多少额外垂直空间。如果一行换行,则此空间仅在显示器上占据的最后一行之后添加。默认为 0。 |
24 | 状态 通常,文本部件会响应键盘和鼠标事件;将 state 设置为 NORMAL 以获得此行为。如果将 state 设置为 DISABLED,则文本部件将不会响应,并且您也无法以编程方式修改其内容。 |
25 | 制表符 此选项控制制表符字符如何定位文本。 |
26 | 宽度 部件的宽度(以字符为单位,而不是像素!),根据当前字体大小测量。 |
27 | 换行 此选项控制过宽行的显示。将 wrap 设置为 WORD,它将在最后一个适合的单词之后换行。使用默认行为 wrap=CHAR,任何过长的行都将在任何字符处换行。 |
28 | 水平滚动命令 要使文本部件水平可滚动,请将此选项设置为水平滚动条的 set() 方法。 |
29 | 垂直滚动命令 要使文本部件垂直可滚动,请将此选项设置为垂直滚动条的 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]] ...) 应用此方法后,给定标签将从提供的区域中删除,而不会删除标签的实际定义。 |
示例
自己尝试以下示例:
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()
执行上述代码后,将产生以下结果: