GUI 图形用户界面编程(六)-对文本的处理

本文介绍了Tkinter库中的Text组件,展示了如何创建和操作多行文本框,包括插入文本、获取文本内容、添加图像和组件、以及通过tag进行文本精确控制。此外,还提供了通过点击tag高亮文本并跳转网页的实现,是学习Python GUI编程的好材料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  ✨✨✨

感谢优秀的你打开了小白的文章 

希望在看文章的你今天又进步了一点点,离美好生活更近一步!🌈

前言

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 图形用户界面编程(五):

(357条消息) GUI 图形用户界面编程(五)-登录页面_am_student的博客-优快云博客 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进步小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值