✨✨✨
感谢优秀的你打开了小白的文章
“希望在看文章的你今天又进步了一点点,离美好生活更近一步!”🌈
前言
Text 多行文本框基本用法(文本输入、组件和图像显示)
Text文本组件用于显示和处理多行文本。在Tkinter的所有组件中,Text组件显得异常强大和灵活,它适用于处理多任务,虽然该组件的主要目的是显示多行文本,但它常常被用于作为简单的文本编辑器和网页浏览器使用。当创建一个Text组件的时候里面是没有内容的。为了给其插入内容,可以使用insert()以及INSERT或END索引号。
实用实例
"""测试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.w1 = Text(root, width=40, height=30,bg="gray")
self.w1.pack()
self.w1.insert(1.0, "欢迎来到优快云\n")
self.w1.insert(2.3, "学习GUI,做出好看的界面!\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, '[sxt]')
self.w1.insert(1.8, "进步小白")
def returnText(self):
# Indexes(索引)是用来指向Text组件中文本的位置,Text的组件索引也是对应实际字符之间的位置。
# 核心:行号以1开始 列号以0开始
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/a.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, "欢迎打开小白主界面\n进入优快云,每天进步一点点")
self.w1.tag_add("优快云", 1.0, 1.9)
self.w1.tag_config("优快云", background="yellow", foreground="red")
self.w1.tag_add("优快云", 4.0, 4.2)
self.w1.tag_config("优快云", underline=True)
self.w1.tag_bind("优快云", "<Button-1>", self.webshow)
def webshow(self,event):
webbrowser.open("https://blog.youkuaiyun.com/am_student?spm=1000.2115.3001.5343")
if __name__ == '__main__':
root = Tk()
root.geometry("450x350+300+400")
app = Application(master=root)
root.mainloop()
运行结果:
点击链接到小白主界面。
🚀往期回顾
📣GUI 图形用户界面编程(一): (278条消息) GUI 图形用户界面编程(一)_am_student的博客-优快云博客
📣GUI 图形用户界面编程(二):
(278条消息) GUI 图形用户界面编程(二)经典案例_am_student的博客-优快云博客
📣GUI 图形用户界面编程(三):
(278条消息) GUI 图形用户界面编程(三)基本框架与Label的使用_am_student的博客-优快云博客
📣GUI 图形用户界面编程(四):
(278条消息) GUI 图形用户界面编程(四)-Button组件_am_student的博客-优快云博客
📣GUI 图形用户界面编程(五):