当前位置:首页>python>python高阶:16、tkinter库(Text组件)

python高阶:16、tkinter库(Text组件)

  • 2026-09-11 17:53:49
python高阶:16、tkinter库(Text组件)
1、tkinter库的导入和主窗口的创建
import tkinter as tk  #以别名tk导入tkinter库win=tk.Tk()    #创建主窗口的实例winwin.title("按钮组件测试窗口")    #设置窗口的标题win.geometry("200x200+600+200")#设置窗口的大小和位置win.resizable(True,False)      #设置窗口可水平缩放,禁止垂直缩放tk.mainloop()  #进入事件处理循环,防止窗口闪退
2、Text组件(类)
Text是Tkinter库中多行文本框组件,用来显示、编辑多行文字,支持样式、标签、滚动条,比Entry功能强很多。
(1)Text组件对象的创建
import tkinter as tk    #以别名tk导入tkinter库win=tk.Tk()                    #创建主窗口的实例winwin.title("按钮组件测试窗口")   #设置窗口的标题win.geometry("400x400+600+200")#设置窗口的大小和位置win.resizable(True,True)      #设置窗口可水平缩放,禁止垂直缩放label1=tk.Label(win,text="详细介绍:") #创建标签对象label1label1.grid(row=0,column=0)    #布局管理器grid,将组件添加到主窗口的第一行,第一列text=tk.Text(win)              #创建文本框对象texttext.grid(row=0,column=1)tk.mainloop()                  #进入事件处理循环,防止窗口闪退
(2)Text组件常用属性参数
属性
说明
width
宽度(字符数)
height
高度(行数)
bg/background
背景色
fg/foreground
文字颜色
font
字体,("黑体",15,"normal")
state
normal(可编辑)/disabled(只读)
wrap
换行方式:word(按单词)/char(按字符)/none(不换行)
bd/borderwidth
边框宽度
relief
边框样式,flat/sunken/raised
/groove/ridge
padx
文本与边框内边距(水平)
pady
文本与边框内边距(竖直)
insertbackground
光标颜色
selectbackground
选中文字背景色
import tkinter as tk    #以别名tk导入tkinter库win=tk.Tk()                    #创建主窗口的实例winwin.title("按钮组件测试窗口")   #设置窗口的标题win.geometry("400x400+600+200")#设置窗口的大小和位置win.resizable(True,True)      #设置窗口可水平缩放,禁止垂直缩放label1=tk.Label(win,text="详细介绍:") #创建标签对象label1label1.grid(row=0,column=0)    #布局管理器grid,将组件添加到主窗口的第一行,第一列#其他属性效果和使用方法和前面几个组件相同,这里仅测试光标和选中属性text=tk.Text(win,selectbackground="red",insertbackground="blue")              #创建文本框对象texttext.grid(row=0,column=1)tk.mainloop()                  #进入事件处理循环,防止窗口闪退
(3)Text组件常用方法
方法名
功能
insert(索引,文本)
在指定位置插入文字
get(起始,结束)
获取指定范围文字
delete(起始,结束)
删除指定范围文字
see(索引)
自动滚动到该位置可见
focus_set()
让文本框获得输入焦点
config(state=...)
切换可编辑/只读
tag_add(tag名,起,止)
给一段文字打标签
tag_config(tag名,属性)
设置标签样式(颜色、字体)
yview()
配合滚动条垂直滚动
import tkinter as tk    #以别名tk导入tkinter库win=tk.Tk()                    #创建主窗口的实例winwin.title("按钮组件测试窗口")   #设置窗口的标题win.geometry("400x400+600+200")#设置窗口的大小和位置win.resizable(True,True)      #设置窗口可水平缩放,禁止垂直缩放def method_test():   #注意索引格式    text.insert("2.2","python")  #在文本索引3处加上python    txt=text.get("1.2","1.10")   #获取第一行第3到第10个字符    print(txt)                 text.see("30.0")     #让文本框自动滚动到第30行,让这个位置可见    text.delete("1.2","1.10")   #删除第一行第3到第10个字符label1=tk.Label(win,text="详细介绍:") #创建标签对象label1label1.grid(row=0,column=0)    #布局管理器grid,将组件添加到主窗口的第一行,第一列#其他属性效果和使用方法和前面几个组件相同,这里仅测试光标和选中属性text=tk.Text(win,selectbackground="red",insertbackground="blue")              #创建文本框对象texttext.grid(row=0,column=1)btn=tk.Button(win,text="确定",command=method_test)btn.grid(row=1,column=0)tk.mainloop()                  #进入事件处理循环,防止窗口闪退
(4)常用索引格式
● 1.0 -> 第1行第0列(开头)
● END/end -> 文本最后
● INSERT -> 光标位置
● end-1c ->去掉最后一个换行符
3、练习:

最新文章

随机文章