首页 > 编程语言 >【Python_GUI】tkinter常用组件——文本类组件

【Python_GUI】tkinter常用组件——文本类组件

时间:2024-07-09 20:26:07浏览次数:13  
标签:tkinter Python text Label grid win 组件 row

文本时窗口中必不可少的一部分,tkinter模块中,有3种常用的文本类组件,通过这3种组件,可以在窗口中显示以及输入单行文本、多行文本、图片等。

Label标签组件

Label组件的基本使用

Label组件是窗口中比较常用的组件,通常用于添加文字或图片,还可以定义Label组件中文字和图片的排列方式。

Label具体的语法如下:

Label(win,text='文本',justify='center')

其中,win是Label组件的父容器,text指定标签的文本;justify指定标签中拥有多行文本时最后一行文本的对齐方式

示例1:

from tkinter import *

win=Tk()
#标题
win.title('文本组件')
Label(win,text='文本',justify='center')
# textd定义Label标签里的文本内容,bg表示Label的背景颜色
txt1=Label(win,text="象",bg="#FFEBCD",width=5,padx=4,pady=4,font="10")
txt2=Label(win,text="狮",bg="#c1ffc1",width=5,padx=4,pady=4,font="10")
txt3=Label(win,text="虎",bg="#FFEBCD",width=5,padx=4,pady=4,font="10")
txt4=Label(win,text="豹",bg="#c1ffc1",width=5,padx=4,pady=4,font="10")
txt5=Label(win,text="狼",bg="#FFEBCD",width=5,padx=4,pady=4,font="10")
txt6=Label(win,text="狗",bg="#c1ffc1",width=5,padx=4,pady=4,font="10")
txt7=Label(win,text="猫",bg="#FFEBCD",width=5,padx=4,pady=4,font="10")
txt8=Label(win,text="鼠",bg="#c1ffc1",width=5,padx=4,pady=4,font="10")
# foreground设置label组件的文字颜色
txtr1=Label(win,text="→",padx=2,pady=2,foreground="#B22222").grid(row=1,column=2)
txtr2=Label(win,text="→",padx=2,pady=2,foreground="#B22222").grid(row=1,column=4)
txtb1=Label(win,text="↓",padx=2,pady=2,foreground="#B22222").grid(row=2,column=5)
txtb2=Label(win,text="↓",padx=2,pady=2,foreground="#B22222").grid(row=4,column=5)
txtl1=Label(win,text="←",padx=2,pady=2,foreground="#B22222").grid(row=5,column=4)
txtl2=Label(win,text="←",padx=2,pady=2,foreground="#B22222").grid(row=5,column=2)
txtt1=Label(win,text="↑",padx=2,pady=2,foreground="#B22222").grid(row=4,column=1)
txtt2=Label(win,text="↑",padx=2,pady=2,foreground="#B22222").grid(row=2,column=1)
# 设置斗兽棋游戏的棋子的位置
txt1.grid(row=1,column=1)
txt2.grid(row=1,column=3)
txt3.grid(row=1,column=5)
txt4.grid(row=3,column=5)
txt5.grid(row=5,column=5)
txt6.grid(row=5,column=3)
txt7.grid(row=5,column=1)
txt8.grid(row=3,column=1)

win.mainloop()

在Label组件中添加图片

在tkinter模块中,图片可以在多处使用,例如Label组件、button按钮以及Text文字区域等,但是添加图片时,需要先创建图像对象PhotoImage(),然后再在其他组件中引入该对象。例如在Label组件中添加一张图像:

from tkinter import *

win=Tk()
#标题
win.title('文本组件')
img=PhotoImage(file='cat.png')
Label(win,image=img).pack()
win.mainloop()

PgotoImage()方法不支持jpg格式的图片,如果需要在窗口中添加.jpg格式的图片,需要现在和引入第三方模块PIL

而如果Label组件中,既有文字,又有图片,则可以通过Label组件中的compound设置图片与文字的显示位置,其参数和含义如下:

参数值含义
top图片位于文字的上方
bottom图片位于文字的下方
left图片位于文字的左侧
right图片位于文字的右侧
center文字位于图片上(图文重叠,且文字在图片的上层)

Entry单行文本框组件

Entry组件的基本使用

Entry组件用于添加单行文本框,其特点是可以添加少量文字。例如登录窗口的用户名输入框和密码输入框。添加Entry组件的语法如下:

from tkinter import *

win=Tk()
#标题
win.title('文本组件')
user=PhotoImage(file="user.png")     #用户名图标
psw=PhotoImage(file="psw.png")       #密码图标
Label(win,image=user,bg="#fff").grid(row=0)    #显示用户名图标
Entry(win).grid(row=0,column=1,padx=10,pady=10)  #用户名文本框
Label(win,image=psw,bg="#fff").grid(row=1)       #显示密码图标
Entry(win,show="*").grid(row=1,column=1,padx=10,pady=10)    #密码文本框,输入的内容显示为“*”
Label(win,text="确定",relief="groove").grid(row=2,columnspan=2,pady=10)
win.mainloop()

很多app登录时需要设置密码,输入密码时,用户看到的并非是自己输入的密码,而是“****”样式的隐藏符号,在Entry组件中,可以通过show参数将用户输入的内容隐藏起来。,并且显示为用户指定的字符:

Entry(win,show='*')

Entry组件中各方法的使用

Entry组件中提供了三个方法,分别是get()、insert()、delete(),它们的具体功能:

get():获取文本框中的内容

insert()在文本框的指定位置添加内容:

entry.insert(4,'***')

insert()中的参数分别表示要添加文本的位置和内容

delete():在删除文本框中指定的内容:

entry.delete(1,2)

delete()中的参数分别表示删除文本区间的起始位置和结束位置

Text多行文本框组件

Entry组件虽然可以添加文字,但是文字只能在一行中显示,当文字较多时,无法换行显示,而Text多行文本框弥补了这一缺点。

Text组件的基本使用

Text组件内可以输入多行文本,当文本内容较多时,它可以自动换行。事实上,Text组件中不仅可以放置纯文本,还可以添加图片、按钮等,具体语法如下:

Text(win)

其中,win为父容器。

在Text组件中可以通过insert()方法来添加初始文本:

text=Text(win)
text.insert(INSERT,'aaaaa')

在Text组件中添加图片时,需要创建PhotoImage()对象,然后通过image_create()引入图像:

photo=PhotoImage(file='psw.png')
text.image_create(END,image=photo)

Text组件的索引

Text组件提供了index()方法,该方法可以用于指向Text组件中文本的位置,它与Python的序列索引一样,Text组件索引也是对应实际字符的位置。Text组件中,文本的索引值通常为字符串类型,并且指定Text索引的方法有多重,常见的有:

line.column:这种方式将索引位置的行号和列号以字符串的形式表现出来,并且中间以“.”分隔,例如“2.3”表示第2行第4列;

insert:插入光标的位置

end:最后一个字符的位置,如果字符串为end,表示所有文本的最后一个字符,如果字符串为line.end,表示当前行的最后一个字符位置。

+count chars:指定位置向后移动count个字符。

-count chars:指定位置向前移动count个字符。

Text组件的常用方法

Text组件提供了一些方法可以获取或编辑Text组件中的内容,常用的方法如下:

方法含义
delete()删除Text组件中的内容
get()获取文本内容
mark_set()添加标记
search()搜索文本
edit_undo()撤销操作
edit_separator()添加分割线,如果再进行撤销操作时,不会撤销所有操作,而只是撤销上一次操作

标签:tkinter,Python,text,Label,grid,win,组件,row
From: https://blog.csdn.net/weixin_39407597/article/details/140275573

相关文章

  • 2024年06月CCF-GESP编程能力等级认证Python编程三级真题解析
    本文收录于专栏《Python等级认证CCF-GESP真题解析》,专栏总目录:点这里,订阅后可阅读专栏内所有文章。一、单选题(每题2分,共30分)第1题小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级,那他可以选择的认证语言有几种?()A.1B.2C.3D.4答案:C第......
  • python基础---元组
    元组1.什么是元组(tuple)元组是容器型数据类型,将()作为容器的标志,里面多个元素用逗号隔开:(数据1,数据2,数据3,…)元组是不可变的;元组是有序的元组的元素可以是任何类型的数据t1=(10,20,30)print(t1)#(10,20,30)#空元组t1=()print(t1)#()#只......
  • 常见python数据类型及其相对应的函数
     列表:list是个有值序列,可以被修改的元素1.访问方式:foriinrange(len(ls)):   forcinls:fori,cinenumerate(ls):Python列表函数1cmp(list1,list2)比较两个列表的元素2len(list)列表元素个数3max(list)返回列表元素最大值4......
  • 【Python进阶】继承进阶和私有权限
    目录一、继承进阶1、方法重写2、调用父类方法3、多层继承二、私有权限1、私有属性2、私有方法面向对象基础:小白也能看懂的Python基础教程(8)-CSDN博客一、继承进阶1、方法重写当父类的同名方法达不到子类的要求,则可以在子类中对方法进行重写。语法:class父类名(obje......
  • 【Python进阶】文件操作、异常、模块
    文件操作、异常、模块目录文件操作、异常、模块一、文件操作1、什么是文件2、操作文件的步骤3、写数据4、快捷读取数据5、其他方式读数据6、备份文件二、os模块1、查看目录2、目录的具体操作三、异常介绍1、什么是异常2、制造常见的异常四、常见处理方式1、快......
  • Nuxt框架中内置组件详解及使用指南(四)
    title:Nuxt框架中内置组件详解及使用指南(四)date:2024/7/9updated:2024/7/9author:cmdragonexcerpt:摘要:本文详细介绍了Nuxt3框架中的两个内置组件:和的使用方法与示例。用于捕获并处理客户端错误,提供了错误处理和自定义错误展示的功能;而是一个实验性组件,用于渲染无客......
  • 全面解析Python:现代编程语言
    引言Python是一种高级、解释型、动态和面向对象的编程语言,由GuidovanRossum于1991年发布。它以简洁、可读性强的代码和丰富的库支持著称,是数据科学、机器学习、Web开发、自动化脚本等领域的首选语言。本文将详细介绍Python的基本概念、高级主题、数据结构、文件操作、模块和......
  • 使用Python Flask快速构建一个api server
    使用flask快速构建一个apiserver代码如下:fromflaskimportFlask,jsonify,requestapp=Flask(__name__)#定义一个路由,当访问根路径时返回欢迎信息@app.route('/')defhome():return'Hello,thisisasimpleAPI!'#定义一个路由,接受GET请求并返回JSON响......
  • python最简单的方式连接数据库做查询和插入操作
    用最简单的代码连接数据库并操作数据库1、包安装pipinstallpymysqlpipinstallcryptography2、源码样例importpymysqlimportuuididNum='123456'try:#连接数据库connection=pymysql.connect(host='192.168.0.11',user='xxxuser',password......
  • python ——列表
    1.列表的定义列表(List)是更灵活的数据存储方式,列表里面的数据可以字符串,数字等一系列任何内容my_list=[1,2,3,"helloworld"]2.列表的遍历列表的遍历可以使用普通的for循环的方式my_list=[1,2,3,4,5,6]foriinmy_list:print(i)#使用len遍历my_list=[1,2,3,4,5,......