python tkinter 文本类组件

2024-09-07 23:36
文章标签 python 组件 文本 tkinter

本文主要是介绍python tkinter 文本类组件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Label组件

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

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

from tkinter import *
from PIL import Image,ImageTkroot = Tk()
root.title("compound")
root.state("zoomed")  #全屏
GText = "\n床前明月光,疑是地上霜\n举头望明月,低头思故乡"G_gif = ImageTk.PhotoImage(file='h.jpg')
"""
使用Label的compound参数让文字与标签共存,compound参数设置图像的位置。compound参数可以是下列值left:图像在左
right:图像在右
top:图像在顶部
bottom:在下
center:文字覆盖在图像上方
"""
label = Label(root, text=GText, image = G_gif, bg='lightyellow',compound="left", font=("simsun", 20))label.pack()root.mainloop()

Entry组件

Entry组件用于添加单行文本框,其特点是可以添加少量文字

from tkinter import *
from PIL import Image,ImageTkwin=Tk()
win.configure(bg='lightyellow')user=ImageTk.PhotoImage(file='h.jpg')
Label(win,text='用户账号',font=14,image=user).grid(pady=10,row=0,column=0)
Entry(win).grid(row=0,column=1)
password=ImageTk.PhotoImage(file='h.png')
Label(win,text='密码',font=14,image=password).grid(pady=10,row=1,column=0)
# Entry组件中,可以通过show参数将用户输入的内容隐藏起来,并且显示为用户指定的字符
entry=Entry(win,show='*')
entry.grid(row=1,column=1)
"""
Entry组件提供了三种方法,分别是get()、insert()和delete()方法,通过这三种方法可以实现获取、插入及删除文本框组件中内容的功能
"""# 使用insert()在文本框的指定位置添加内容
entry.insert(INSERT,'password123')
# 使用delete()删除文本框中指定内容
def back():length=len(entry.get())  #获取文本框的内容的长度entry.delete(0,END)def show():str=entry.get()  #获取文本框的内容print('密码',str)
Button(win,text='显示',command=show).grid(row=1,column=2)  #定义一个按钮
Button(win,text='清除',command=back).grid(row=1,column=3)win.mainloop()

 

from tkinter import *
from PIL import Image,ImageTkwin=Tk()
win.configure(bg='lightyellow')def add():re.delete(0,END)add1=int(op1.get())add2=int(op2.get())re.insert(INSERT,add1+add2)op1=Entry(win,width=5)
op1.grid(row=0,pady=20)
Label(win,text='+').grid(row=0,column=1)
op2=Entry(win,width=5)
op2.grid(row=0,column=2)
Label(win,text='=').grid(row=0,column=3)
re=Entry(win,width=5)
re.grid(row=0,column=4)
Button(win,text='计算',command=add).grid(row=1,column=5)win.mainloop()

 

 

Text组件

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

from tkinter import *
from PIL import Image,ImageTki=0
def show():global ii+=1label.config(text='你点了我\t'+str(i)+'下')win=Tk()
win.configure(bg='lightyellow')
text=Text(win,width=45,height=10,bg='lightyellow',relief='solid')  #创建多行文本框
photo=ImageTk.PhotoImage(file='h.jpg')  #创建一个图象对象
text.image_create(END,image=photo)  #text中插入图片
text.insert(INSERT,'在这里添加文本') #添加文本
text.pack()bt=Button(win,text='你点我试试',command=show,padx=10) #创建一个按钮
label=Label(win,padx=10,text='你点了我0下')
"""
Text组件提供了index()方法,用于指向Text组件中文本的位置,
它与Python的序列索引一样,也是对应实际字符之间的位置。
Text组件中,文本的索引值通常为字符串类型,并且指定Text索引的方式有多种,
下面列举常见的几种方式:
☑ line.column:这种方式将索引位置的行号和列号以字符串的形式表示出来,并且中间以“.”分隔,例如“2.3”表示第2行第4列。
☑ insert:插入光标的位置。
☑ end:最后一个字符的位置,如果字符串为“end”,表示所有文本的最后一个字符位置;
如果字符串为“line.end”,就表示第line行的最后一个字符位置。
☑+count chars:指定位置向后移动count个字符。例如“2.1+2 chars”表示第2行第4个字符的位置。
☑-count chars:指定位置向前移动count个字符。例如“2.3-2 chars”表示第2行第2个字符的位置。
"""
text.window_create('2.1',window=bt)  #将按钮放在text中
text.window_create('2.2',window=label)print(text.get(1.1,1.9))
win.mainloop()

 

from tkinter import *
win=Tk()def undo1(event):text.edit_undo()  #撤销之前的操作
def redo1(enent):text.edit_redo()
def callback(event):print('hh')text.edit_separator()  #单击一次键盘就加一个分割线text=Text(win,width=50,height=30,undo=True,autoseparators=False)
text.pack()text.insert(INSERT,'在下方添加文本,通过键盘  <ctrl+z>撤销操作 和<ctrl+y回复操作\n\n>')
text.bind('<Key>',callback)
text.bind('<Control-Z>',undo1)
text.bind('<Control-Y>',redo1)  #按下组合键执行操作win.mainloop()

Spinbox组件

Spinbox组件不仅可以添加文本,还可以在给定的值中选择一个

from tkinter import *win=Tk()
win.title('购买道具')Label(win,text='购买道具:').grid(row=0,column=0,pady=10)
#通过元组定义可以选择的值
Spinbox(win,values=('绿水晶','红宝石','生命水')).grid(row=0,column=1,pady=10)
Label(win,text='购买数量').grid(row=1,column=0,pady=10)
#通过from_to 定义可选的数值范围
Spinbox(win,from_=1,to=5).grid(row=1,column=1,pady=10)
Label(win,text='限购5件').grid(row=1,column=1,pady=10)
Label(win,text='支付方式').grid(row=2,column=1,pady=10)
Spinbox(win,values=('金币','钻石','点券')).grid(row=2,column=1,pady=10)win.mainloop()

 

from tkinter import *win=Tk()
win.title('留言本')def show():info.insert('insert','\t时间:{}月{}日{}\n'.format(spmon.get(),spdat.get(),spwek.get()))print(info.get('1.0',END))
mess=Label(win,text='请添加你的留言').grid(row=0,column=0,columnspan=5,pady=10)
spmon=Spinbox(win,from_=1,to=12,width=10) #选择月份
spmon.grid(row=1,column=0,pady=10)
mon=Label(win,text='月').grid(row=1,column=1,pady=10)
spdat=Spinbox(win,from_=1,to=30,width=10) #选择日期
spdat.grid(row=1,column=2,pady=10)
dat=Label(win,text='日').grid(row=1,column=3,pady=10)
spwek=Spinbox(win,values=('星期一','星期二','星期三','星期四','星期五','星期六','星期日'))
spwek.grid(row=1,column=5,columnspan=3,pady=10)info=Text(win,bg='lightyellow',width=50,height=10)
get1=Button(win,text='提交',command=show).grid(row=3,columnspan=10)
info.grid(row=2,columnspan=10)win.mainloop()

Scale组件

Scale组件可以规定数值范围,用户只需要拖动滑块就可以选择数值

from tkinter import *win=Tk()num=0
def up1():if scale1.get()<50:val=scale1.get()+1scale1.set(val)num=val*5txt.config(text='爱心暴击'+str(num))def down1():if scale1.get()>0:val=scale1.get()-1scale1.set(val)num=val*5txt.config(text='爱心暴击'+str(num))
def hit(widget):num=scale1.get()*5txt.config(text='爱心暴击'+str(num))
txt=Label(text='爱心暴击+0')
txt.pack(side=TOP)
btndown=Button(win,text='-',command=down1,width=2).pack(side='left')
# from_和to表示数值范围,resolution=1表示每次滑块移动增加或减小1
"""
win为指定的父容器;form_和to指定Scale组件中值的范围,其中from_为最小值,to为最大值;
resolution定义滑块每次更改的数值;
orient定义组件垂直显示或水平显示,若值为HORIZONTAL,表示水平显示,若值为VERTICAL,表示垂直显示
"""
scale1=Scale(win,from_=0,to=50,resolution=1,orient=HORIZONTAL,showvalue=0,command=hit)
scale1.pack(side='left')btnup=Button(win,text='+',command=up1,width=2).pack(side='left')win.mainloop()

 

这篇关于python tkinter 文本类组件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1146486

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too