赞
踩
tkinter中Text模块有很多功能,最常用的有
insert:插入信息
get:获取信息
delet:删除信息
window_creat:创建新窗口
tag_add:为指定的文本添加Tags
tag_config:设置Tags的样式
tag_bind:绑定事件
为了展示上述功能,编写如下程序:
from tkinter import * import webbrowser from tkinter import messagebox class Application(Frame): def __init__(self,master=None): super().__init__(master) self.master = master self.pack() self.creatWidget() def creatWidget(self): self.w1 = Text(self, width=80, heigh=40, bg='gray') # 宽度为80个字母(40个汉字),高度为1个行高 self.w1.pack() self.w1.insert(1.0, "123456\n789012") # 在第1行第0列插入 self.w1.insert(2.3, "锄禾日当午\n") # 创建诸多按钮,command表示按下按钮后执行的事件(方法) Button(self, text="重复插入文本", command=self.insertText).pack(side="left") Button(self, text="返回文本", command=self.returnText).pack(side="left") Button(self, text="添加图片", command=self.addImage).pack(side="left") Button(self, text="添加组件", command=self.addWidget).pack(side="left") Button(self, text="通过tag精确控制文本", command=self.testTag).pack(side="left") # 插入信息 def insertText(self): # INSERT索引表示:在光标处插入字符“SZ” self.w1.insert(INSERT, "SZ") # END索引号表示:在最后插入字符“【sxt】” self.w1.insert(END, "[sxt]") # 返回信息 def returnText(self): # Indexes(索引):用来指向Text组件中文本的位置,Text的组件索引也是对应实际字符之间的位置 # 行号以1开始,列号以0开始 print(self.w1.get(1.2,1.6)) # 获取第1行2列开始至1行6列之间的内容 messagebox.showinfo("返回的文本", self.w1.get(1.2, END)) # 弹出一个窗口,显示从第1行2列至文末所有内容 print("所有文本内容:\n", self.w1.get(1.0, END)) messagebox.showinfo("所有的文本", self.w1.get(1.0, END)) # 添加图片 def addImage(self): # globe photo self.photo = PhotoImage(file="2.gif") self.w1.image_create(END, image=self.photo) def addWidget(self): b1 = Button(self.w1, text="BIT") # 在text创建组件的命令 self.w1.window_create(INSERT, window=b1) def testTag(self): self.w1.delete(1.0, END) # 将第1行第0列到结尾的内容删除 self.w1.insert(INSERT, "好好学习\n天天向上\n") # 插入 self.w1.tag_add("good", 1.0, 2.9) # 区域名:"good",区域:第一行第0列---->第2行第9列 self.w1.tag_config("good", background="yellow", foreground="red") # 设置"good"区域背景和前景颜色 self.w1.insert(3.0, "点击进入百度") # 在第3行第0列插入 self.w1.tag_add("baidu", 3.0, END) # 第3行第0列至文本框最后的区域取名为"baidu" self.w1.tag_config("baidu", underline=True) # 给"baidu"区域加下划线 self.w1.tag_bind("baidu", "<Button-1>", self.webShow) # 给"baidu"区域绑定事件 def webShow(self,event): webbrowser.open("www.baidu.com") # 打开百度网页 if __name__ == '__main__': root = Tk() root.geometry("800x600") root.title("测试") app = Application(root) root.mainloop()
将光标定位在9后面,点击两次重复插入文本,结果显示如下:
每点击一次插入一个BIT按钮
点击“点击进入百度”会打开默认浏览器,进入www.baidu.com
以上就是tkinter中Text模块的所有内容,如果对你有所帮助,请点赞哦!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。