#coding=utf-8
'''测试一个经典的GUI算法,通过面向对象的方法'''
import webbrowser
from tkinter import *
from tkinter import messagebox
class Application(Frame):
def __init__(self ,master=None):
super().__init__(master)
self.master=master
self.pack()
self.createwidget()
def createwidget(self):
self.w1=Text(root,width=40,height=12,bg="gray")
self.w1.pack()
self.w1.insert(1.0, "123456789\nabcdefg")
self.w1.insert(2.3,"锄禾日当午,汗滴禾下土。谁知盘中餐,粒粒皆辛苦。\n")
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索引表示在光标处插入
self.w1.insert(INSERT,'gaoqi ')
#END索引号表示在最后插入
self.w1.insert(END,"[sxt]")
self.w1.insert(1.8,"zby")
def returnText(self):
print(self.w1.get(1.2,1.6))
print("所有文本内容:\n"+self.w1.get(1.0,END))
def addImage(self):
#global photo
self.photo =PhotoImage(file="imgs/logo.gif")
self.w1.image_create(END,image=self.photo)
def addWidget(self):
b1=Button(self.w1,text="爱尚学堂")
#在text创建组件的命令
self.w1.window_create(INSERT,window=b1)
def testTag(self):
self.w1.delete(1.0,END)
self.w1.insert(INSERT,"good good study,day day up \n 北京尚学堂\n百战程序员\n百度,搜一下就知道")
self.w1.tag_add("good",1.0,1.9)
self.w1.tag_config("good",background="yellow",foreground="red")
self.w1.tag_add("baidu",4.0,4.2)
self.w1.tag_config("baidu",underline=True)
self.w1.tag_bind("baidu","Button-1",self.webshow)
def webshow(self):
webbrowser.open("http://www.baidu.com")
if __name__ == "__main__":
root=Tk()
root.geometry("500x500+500+400")
root.title("消息")
app=Application(master=root)
root.mainloop()
我的运行结果百度点击不了