'''
Text(多行文本框)的主要用于显示多行文本,还可以显示网页链接, 图片, HTML 页面,
甚至 CSS 样式表,添加组件等。因此,也常被当做简单的文本处理器、文本编辑器或者网
页浏览器来使用。比如 IDLE 就是 Text 组件构成的。
'''
import tkinter as tk
from tkinter import messagebox
import webbrowser
class Application(tk.Frame):
def __init__(self,master=None):
super().__init__(master)
self.createWidget()
self.pack()
def createWidget(self):
self.text = tk.Text(self, width=40, height=30, bg='white')
self.text.insert(1.0, '李剑神使得一把好剑!')
self.text.insert(3.2, '徐骁是人见人怕的北凉王!')
self.text.pack(side='bottom')
self.btn01 = tk.Button(self, text='插入文本', command=self.insertText)
self.btn01.pack(side='left')
self.btn02 = tk.Button(self, text='返回文本', command=self.returnText)
self.btn02.pack(side='left')
self.btn03 = tk.Button(self,text='插入图片',command=self.insertPhoto)
self.btn03.pack(side='left')
self.btn04 = tk.Button(self, text='插入组件', command=self.insertWidget)
self.btn04.pack(side='left')
self.btn05 = tk.Button(self, text='tag标记', command=self.insertTag)
self.btn05.pack(side='left')
self.btn06 = tk.Button(self,text='退出按钮',command=root.destroy)
self.btn06.pack(side='bottom')
def insertText(self):
self.text.insert(2.0,'徐凤年')
self.text.insert(tk.INSERT,'木马牛是把神剑!')
self.text.insert(tk.END, '阿里巴巴四十大盗')
def returnText(self):
print('打印所有文本信息:{0}'.format(self.text.get(1.0,tk.END)))
def insertPhoto(self):
self.photo = tk.PhotoImage(file='image/aaa.gif')
self.text.image_create(tk.END,image=self.photo)
def insertWidget(self):
self.btn07 = tk.Button(self.text,text='添加的按钮')
self.text.window_create(tk.INSERT,window=self.btn07)
def insertTag(self):
self.text.delete(1.0,tk.END)
self.text.insert(tk.INSERT, 'good study!如果还不会就去\nbaidu好好查一下吧!')
self.text.tag_add('good',1.0,1.4)
self.text.tag_config('good',background='red')
self.text.tag_add('baidu',2.0,2.4)
self.text.config('baidu',underline=True)
self.text.tag_bind('baidu','<Button-1>',self.webBrower)
def webBrower(self,event):
webbrowser.open('http://www.baidu.com')
if __name__ == '__main__':
root = tk.Tk()
root.title('TEXT多行文本测试')
root.geometry('500x500+500+200')
app = Application(master=root)
root.mainloop()
老师帮我看一下定位到这两句语句报错,但是我不知道是什么原因,参数也是正确的啊。
self.text.tag_add('baidu',2.0,2.4)
self.text.config('baidu',underline=True)