#Text的测试
from tkinter import *
import webbrowser
class Application(Frame):
def __init__(self,Master=None):
super().__init__(Master)
self.Master=Master
self.pack()
self.creatWidget()
def creatWidget(self):
self.w1 = Text(root, width=40,height=40, bg="blue")
#宽度为20个字母,10个汉字,高度12行高
self.w1.pack()
self.w1.insert(1.0, "0123456789\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, "钟辉")
#END索引表示在最后面插入
self.w1.insert(END, "加油坚持努力")
self.w1.insert(1.8,"ahui")
def returnText(self):
# Indexes(索引)是用来指向Text组件中文本的位置,Text的组件索引也是对应实际字符之间的位置。
# 核心:行号以1开始 列号以0开始
print(self.w1.get(1.0,1.6))
self.w1.insert(1.8,"zh")
print("所有文本内容:\n",self.w1.get(1.0,END))
def addImage(self):
global photo
photo=PhotoImage(file = r"E:\new start\gui\imgs\littlecat.gif")
self.w1.image_create(END, image=photo)
def addWidget(self):
b1 = Button(self.w1, text="努力学")
self.w1.window_create(INSERT, window=b1)
def testTag(self):
self.w1.delete(1.0,END)
self.w1.insert(INSERT, "钟辉要选好Python\n百度")
self.w1.tag_add("zh",1.0,2.0)
self.w1.tag_config("zh",background="yellow")
self.w1.tag_add("baidu", 2.0, 2.2)
self.w1.tag_config("baidu", underline=True)
self.w1.tag_bind("baidu", "<Button-1>", self.webshow)
def webshow(self,event):
webbrowser.open("http://www.baidu.com")
if __name__=="__main__":
root = Tk()
root.geometry("400x400")
app = Application(Master=root)
root.mainloop()
问题:
为什么创建Text时后面接的时root而不是self呢,而创建Button时后面却接self,是不是说Frame没有办法管到Text呢
tag_config中的background不能用缩写bg,而text后直接加属性的话是可以用缩写的,这是说config中是只能用全写吗