当前位置:   article > 正文

(Python)tkinter中Text(多行文本框)控件_tkinter 多行文本框

tkinter 多行文本框

1. 常用功能介绍

tkinterText模块有很多功能,最常用的有
insert:插入信息
get:获取信息
delet:删除信息
window_creat:创建新窗口
tag_add:为指定的文本添加Tags
tag_config:设置Tags的样式
tag_bind:绑定事件

2. 示例

2.1 示例程序

为了展示上述功能,编写如下程序:

from tkinter import *
import webbrowser
from tkinter import messagebox

class Application(Frame):
    def __init__(self,master=None):
        super().__init__(master)
        self.master = master
        self.pack()
        self.creatWidget()

    def creatWidget(self):

        self.w1 = Text(self, width=80, heigh=40, bg='gray') # 宽度为80个字母(40个汉字),高度为1个行高
        self.w1.pack()

        self.w1.insert(1.0, "123456\n789012")     # 在第1行第0列插入
        self.w1.insert(2.3, "锄禾日当午\n")

        # 创建诸多按钮,command表示按下按钮后执行的事件(方法)
        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索引表示:在光标处插入字符“SZ”
        self.w1.insert(INSERT, "SZ")
        # END索引号表示:在最后插入字符“【sxt】”
        self.w1.insert(END, "[sxt]")

    # 返回信息
    def returnText(self):
        # Indexes(索引):用来指向Text组件中文本的位置,Text的组件索引也是对应实际字符之间的位置
        # 行号以1开始,列号以0开始
        print(self.w1.get(1.2,1.6))  # 获取第1行2列开始至1行6列之间的内容
        messagebox.showinfo("返回的文本", self.w1.get(1.2, END))  # 弹出一个窗口,显示从第1行2列至文末所有内容
        print("所有文本内容:\n", self.w1.get(1.0, END))
        messagebox.showinfo("所有的文本", self.w1.get(1.0, END))

    # 添加图片
    def addImage(self):
        # globe photo
        self.photo = PhotoImage(file="2.gif")
        self.w1.image_create(END, image=self.photo)

    def addWidget(self):
        b1 = Button(self.w1, text="BIT")
        # 在text创建组件的命令
        self.w1.window_create(INSERT, window=b1)

    def testTag(self):
        self.w1.delete(1.0, END) # 将第1行第0列到结尾的内容删除
        self.w1.insert(INSERT, "好好学习\n天天向上\n") # 插入
        self.w1.tag_add("good", 1.0, 2.9)  # 区域名:"good",区域:第一行第0列---->第2行第9列
        self.w1.tag_config("good", background="yellow", foreground="red") # 设置"good"区域背景和前景颜色

        self.w1.insert(3.0, "点击进入百度") # 在第3行第0列插入
        self.w1.tag_add("baidu", 3.0, END)  # 第3行第0列至文本框最后的区域取名为"baidu"
        self.w1.tag_config("baidu", underline=True) # 给"baidu"区域加下划线
        self.w1.tag_bind("baidu", "<Button-1>", self.webShow) # 给"baidu"区域绑定事件

    def webShow(self,event):
        webbrowser.open("www.baidu.com")  # 打开百度网页


if __name__ == '__main__':
    root = Tk()
    root.geometry("800x600")
    root.title("测试")
    app = Application(root)
    root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74

2.2 仿真结果

2.2.1 主页面

在这里插入图片描述

2.2.2 重复插入文本结果

将光标定位在9后面,点击两次重复插入文本,结果显示如下:
在这里插入图片描述

2.2.3 返回文本结果

在这里插入图片描述

2.2.4 添加图片结果

在这里插入图片描述

2.2.5 添加组件结果

每点击一次插入一个BIT按钮
在这里插入图片描述

2.2.6 Tag键

在这里插入图片描述
点击“点击进入百度”会打开默认浏览器,进入www.baidu.com

以上就是tkinter中Text模块的所有内容,如果对你有所帮助,请点赞哦!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/767555
推荐阅读
相关标签
  

闽ICP备14008679号