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()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/418573.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

水晶连连看 - 无限版软件操作说明书

水晶连连看 – 无限版游戏软件使用说明书 文章目录 水晶连连看 – 无限版游戏软件使用说明书1 引言1.1 编写目的1.2 项目名称1.3 项目背景1.4 项目开发环境 2 概述2.1 目标2.2 功能2.3 性能 3 运行环境3.1 硬件3.2 软件 4 使用说明4.1 游戏开始界面4.2 游戏设定4.2.1 游戏帮助4…

「大数据分析」图形可视化,如何选择大数据可视化图形?

​图形可视化技术&#xff0c;在大数据分析中&#xff0c;是一个非常重要的关键部分。我们前期通过数据获取&#xff0c;数据处理&#xff0c;数据分析&#xff0c;得出结果&#xff0c;这些过程都是比较抽象的。如果是非数据分析专业人员&#xff0c;很难清楚我们这些工作&…

前端常用工具网站分享:MemFire Cloud,懒人开发者的福音

你是否曾梦想过&#xff0c;有那么一款工具&#xff0c;能够让你像变魔术一样快速搭建起一个应用&#xff0c;而无需深陷复杂的后端搭建和接口开发的泥潭&#xff1f;今天&#xff0c;我要为你介绍的&#xff0c;就是这样一个神奇的存在——MemFire Cloud&#xff0c;一款专为懒…

13款常用AI编程工具

AI编程工具的选择和使用&#xff0c;主要取决于具体的项目需求、编程语言、以及AI任务的类型&#xff08;如机器学习、自然语言处理、计算机视觉等&#xff09;。下面是一些广泛使用的AI编程工具合集&#xff0c;涵盖了从开发、训练、到部署的各个环节&#xff1a; Jupyter Not…

随手记:小程序体积超出2M包大小如何优化

小程序的包体积限制是2M&#xff0c;超出包大小如何优化 先简单列出&#xff0c;最近比较忙&#xff0c;后续优化明细&#xff0c;有着急的先留言踢我 1.分包 留几个主要的页面体积小的&#xff0c;剩下的在page.json中拆到subpackages中&#xff0c;简单举个例子 "page…

【C++ Primer Plus习题】10.8

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> #include "List.h" …

[数据集][目标检测]水面垃圾检测数据集VOC+YOLO格式2027张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2027 标注数量(xml文件个数)&#xff1a;2027 标注数量(txt文件个数)&#xff1a;2027 标注…

MarkdownEditor 配置以及使用

MarkdownEditor 配置以及使用 MarkdownEditor是一款基于浏览器的 Markdown 编辑器&#xff0c;虽然他是独立软件&#xff0c;但该软件内嵌一个浏览器。功能非常简单实用、反应速度很快&#xff0c;号称是Markdown领域的NotePad&#xff08;记事本&#xff09;。 MarkdownEdit…

JDBC与数据库之间的操作(增删改查、获取主键、业务逻辑分离、属性文件配置)

参考视频哔哩哔哩 1、Service和Servicelmpl的概念 java中service和servicelmpl是常见的代码组织方式 Service是指业务逻辑的接口&#xff0c;定义了系统对外提供的功能。Servicelmpl是Service接口的具体实现&#xff0c;实现了具体的业务逻辑。 Service和Servicelmpl的好处…

SpinalHDL之数据类型(一)

本文作为SpinalHDL学习笔记第五十四篇,介绍SpinalHDL的Bool数据类型。 SpinalHDL技术交流QQ群: Note: 1.本群是个人技术交流群,不是什么官方答疑群; 2.提问是你的权利,但回答不是别人的义务; 3.可以潜水,不能灌水; 4.请文明交流,做这行的都算高层次人才,希望你…

黑神话悟空背后的技术揭秘与代码探秘

《重塑神话&#xff1a;黑神话悟空背后的技术揭秘与代码探秘》 引言 在国产游戏领域&#xff0c;《黑神话:悟空》无疑是一颗璀璨的明星&#xff0c;它不仅融合了深厚的中国文化元素&#xff0c;更在技术上实现了诸多突破&#xff0c;为玩家带来了前所未有的沉浸式体验。本文将…

sqli-lab靶场学习(一)——Less1-4

前言 最近一段时间想切入安全领域&#xff0c;因为本身有做数据库运维工作&#xff0c;就打算从sql注入方向切入。而sql注入除了学习日常书本上的概念外&#xff0c;需要有个实践的环境&#xff0c;刚好看到sqli-lab这个靶场&#xff0c;就打算先用这个来学习。 安装部署 网上…

HTTP“请求”和“响应”的报头及正文详解

目录 一、请求 "报头" (header) 二、请求 "正文" (body) 2.1 application/x-www-form-urlencoded 2.2 multipart/form-data 2.3 application/json 三、HTTP 响应状态码 四、响应 "报头" (header) 五、响应 "正文" (body) 5.1…

微信小程序实践案例

参考视频&#xff1a; https://www.bilibili.com/video/BV1834y1676P/?p36&spm_id_frompageDriver&vd_sourceb604c19516c17da30b6b1abb6c4e7ec0 前期准备 1、新建三个页面 "pages": ["pages/home/home","pages/message/message",&quo…

智慧交通基于yolov8的井盖异常检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 智慧交通中的井盖异常检测系统&#xff0c;基于先进的YOLOv8算法&#xff0c;为城市基础设施的安全管理提供了强有力的技术支持。该系统通过集成YOLOv8的深度学习技术&#xff0c;实现了对道路井盖状态的实时、精准监测。 YOLOv8以其高效、准确的特点&#xff0…

为什么现在不建议去电力设计院?终于有人把电力设计院说清楚了!

作者&#xff1a;电气哥 最近电气哥收到了许多面临就业的同学特别是硕士同学有关于电力设计院的咨询&#xff0c;那么现在电力设计院到底还值不值得去&#xff1f;电气哥带你来分析一下电力设计院的前世今生。 01 电力设计院的前世今生 曾经&#xff0c;在我国的大基建时代&…

“Docker网络模式详解与应用“

目录 前言 Docker内置网络 bridge 基本概念 案例 工作原理 使用场景 host 基本概念 案例 工作原理 使用场景 none 基本概念 案例 &#xff01;&#xff01;&#xff01;大佬救命 container 基本概念 案例 自定义网络 自定义bridge 基本概念 案例 Docker…

如何操作可以有效的防止其他人修改Excel文件?

工作中&#xff0c;我们经常遇到同一份表格可能需要好多人共同去完成&#xff0c;但是当你整理好数据发给别的同事的时候&#xff0c;等表格再回来的时候&#xff0c;你可能发现你之前设置的资料格式内容等都被修改了&#xff0c;遇到这种情况时&#xff0c;如何操作可以有效的…

传统CV算法——基于Opencv的图像绘制

直线绘制 参数解析&#xff1a; &#xff08;图像矩阵&#xff0c;直线起始坐标&#xff0c; 直线终止坐标、颜色、线条厚度&#xff09; cv2.line()是OpenCV中用于绘制直线的函数。 参数说明&#xff1a;img&#xff1a;要绘制直线的图像矩阵。(100,30)&#xff1a;直线的起…

第二十三篇——地形篇:将领的四条职业道德准则

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 这一篇讲将领应该如何做&#xff0c;以及正反方面也讲到了职场人应该如何…