likes
comments
collection
share

Python Tkinter组件之Text

作者站长头像
站长
· 阅读数 42

Python Tkinter组件之Text

复习回顾

Python Tkinter组件之Text

观察一下,个人介绍栏与其他栏除了形状大小的区别之外,还有什么区别?

我们带着疑问,开启本期将学习Python Tkinter组件支持多文本输入框的Text组件相关属性及方法学习,Let's go

1. Text 组件概述

Text 多行文本框,用来接收多行文本

  • 当成“富文本”编辑页面,需要输入大量字符串等场景

  • 可以显示网页链接、图片、HTML页面,甚至CSS样式,添加组件等

    Python Tkinter组件之Text

Text 语法格式如下:

   Txt = Text(master,Options)

2. Text 与 Entry 对比

Entry 和 Text 是Python Tkinter的标准组件,都是可接收用户输入的输入框组件。

  • 相同点

    1. Entry 与 Text 都提供get()方法来获取文本框中的内容
    2. Entry 与 Text 都提供insert()方法来改变文本框中的内容
    3. Entry 与 Text 都支持索引
  • 不同点

    1. Entry 支持单行输入,Text支持多行输入
    2. Entry 不支持添加不同的格式,Text可以为不同部分添加不同的格式
    3. Entry 的索引写法简单如(3,8)表示第4个字符到第8个字符,Text 的索引需要同时指定行号和列号(1.3,2.6)表示第1行第4个字符,到第2行第7个字符
    4. Entry 支持双向绑定,可以将Entry与变量绑定在一起吗,也可以通过变量来改变、获取Entry组件中的内容;Text则不支持,只能与变量进行绑定

3. Text 组件常见属性

属性含义
height设置文本框的高度,高度值每加1则加一行
width设置文本框的宽度,宽度值每加1则加一个字节
insert文本框插入数据,可以指定插入数据的位置
delete删除文本框中的数据,可以通过数据位置,指定删除的数据
get获取文本框中的数据,可以通过数据位置,指定获取的数据
relief文本框样式,设置控件显示效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。
bd设置文本框的边框大小,值越大边框越宽
bg设置文本框默认背景色
fg设置文本框默认前景色,即字体颜色
font文本字体,文字字号,文字字形。字形有overstrike/italic/bold/underline
state文本框状态选项,状态有DISABLED/NORMAL,DISABLED状态文本框无法输入,NORMAL状态可以正常输入
highlightcolor设置文本框点击后的边框颜色
highlightthickness设置文本框点击后的边框大小

4. Text 组件提供常用方法

方法作用
bbox(index)显示指定的字符屏幕区域
compare(index1,op,index2)比较两个位置的字符是否满足指定关系
count(index1,index2)计算指定位置间距离
delete(index)删除指定字符串
dlineinfo(index)返回指定位置的行占用区域
dump(index)转存指定位置的内容
edit(*args)在指定位置编辑内容
edit_modified()编辑修改内容
edit_redo()撤销编辑的内容
get(index)获取指定位置的内容
image_cget()获取嵌入的图像的内容
image_names()获取图像的名字
insert(index,chars)插入新内容到指定的位置
mark_names标记信息
peer_names创建查询组件的名字
search(pattern,index)在指定范围内查询内容
window_create(index)

5. 小试牛刀

Text相关方法练习效果如下:

Python Tkinter组件之Text

  1. 创建Text 组件对象,可以通过Option设置其属性。

    例如创建一个背景颜色为粉色的Text组件

    self.txt = Text(root,width = 40,height = 12,bg ="pink")
    
  2. Text组件可以支持添加多行本,可以使用insert()方法添加多行字符

     def insertText(self):
    
        self.txt.insert(INSERT,'小可爱')
    
        self.txt.insert(END,'celebrating')
    
  3. Text组件支持添加图片,可以使用image_create()

    def addImage(self):
    
        self.photo = PhotoImage(file = "heart.gif")
        self.txt.image_create(END,image = self.photo)
    
  4. Text组件添加其他组件,使用window_create()方法

     def addWidget(self):
    
        b1 = Button(self.txt,text = "盆友圈")
        self.txt.window_create(INSERT,window = b1)
    
  5. Text组件清空字符串,可以使用delete()方法

    def resetText(self):
    
        self.txt.delete(1.0,END)
    

    📣 INSET 表示光标位置,END 将光标移到文本末尾

  6. 使用GUI面向对象编程写法,使用Application(Frame)来创建实例对象,创建组件的方法封装给createWidgetText()方法,通过构造函数创建好组件

  7. 最后完整代码如下:

总结

本期,我们又学习Tkinter组件之文本输入框

  • Entry单行文本框常用于登陆界面用户命名、密码等表单填写场景
  • Text 多行文本框一般被用来作为富文本来使用,支持多种文本格式

在工作场景需要接收用户输入的字符串,我们可以按照输入内容多少来选择使用Entry和Text组件,同时它们也提供对文本进行删除、修改、插入等方法。

以上是本期内容,欢迎大佬们点赞评论指正,下次见~ღ( ´・ᴗ・` )比心🌹

转载自:https://juejin.cn/post/7000286257351753735
评论
请登录