#测试Text多行文本
from tkinter import *
import webbrowser
class Application(Frame):
def __init__(self,master=None):
super().__init__(master)
self.master=master
self.pack()
self.createWidget()
def createWidget(self): #定义框内容以及属性
self.w = Text(root,width=40,height=10,bg="white",font=("宋体",18))
self.w.pack()
#self.w.insert(1.0)代表在第1行0列插入内容
#行:123...;列:012...
self.w.insert(1.0,"0123456789\n0纵观世界与天下\n奇闻异事")
self.w.insert(2.3, "xxx")
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.TextTag).pack(side="left") #Tag标记
def insertText(self):
#INSERT代表从光标处插入内容
#END在末尾插入内容
self.w.insert(INSERT,"HE")
self.w.insert(END, "ST")
#在指定位置插入指定文本内容
self.w.insert(2.8,"acz") #在第2行第8列的位置插入
def returnText(self):
#获取文本的内容,并在命令行打印输出,get(初始位置, 终止位置)--获得该区域内容
print(self.w.get(2.0, 2.5))
print("文本所有内容:" + self.w.get(1.0, END))
def addImage(self):
#添加图片image_create()
#定义全局变量globle p 或 对象属性self.p
#global p
self.p = PhotoImage(file="imgs/13.gif")
self.w.image_create(END, image=self.p)
def addWidget(self):
#添加组件window_create()
b=Button(self.w,text="点击") #master为建好的文本域self.w
self.w.window_create(INSERT,window=b)
def TextTag(self):
self.w.delete(1.0,END)
self.w.insert(1.0,"good dood study!\n尚学堂\n百度一下,你就知道")
#Tag--标记
self.w.tag_add("IM",1.0,1.5) #在指定区域内添加标记,将标记命名为good
#标记属性定义,标记backgrond背景色,foreground标记体颜色,underline下划线
self.w.tag_config("IM",background="yellow",foreground="red",underline=True)
#标记事件绑定,即点击会出现的情况
self.w.tag_add("bd", 3.0, 3.2) # 在指定区域内添加标记
self.w.tag_config("bd",background="blue",underline=True)
self.w.tag_bind("bd","<Button-1>",self.webshow) #<Button-1>点击左键
#定义参数event,将<Button-1>点击左键作为参数event传入
def webshow(self,event):
webbrowser.open("https://www.baidu.com/")
if __name__=="__main__":
root=Tk() #创建框大小、位置以及标题
app=Application(master=root)
root.title("Text_test")
root.geometry("500x300+450+200")
root.mainloop()
老师,请问这个为什么这个程序中图片部分的不能显示,点了没反应是为什么呢?没有图片出来?